On Aug 2, 2015, at 04:01 , sqwarqDev <email@hidden> wrote:
Is it possible to build a single app target and link it to one version or another of a (3rd party) framework at runtime, depending on the OS X version the user is running?
Specifically, my app runs on 10.6 or later, but adding Sparkle v1.11 requires 10.7 minimum. I understand I need to use Sparkle 1.5b for SL users, but I want to build both the old and new versions of Sparkle into a single binary and have the appropriate one linked to at run time.
In theory it might be possible (though OTOH there might be linker requirements for Obj-C code that make it impossible for other reasons) by creating two dynamic libraries, but you’d have to load the correct one manually at run time. This seems like a world of pain.
If you’re determined to fully support OS X back to 10.6, your best choice is probably to stick with Sparkle 1.5. Sparkle 1.11 might be compelling as a replacement, but I don’t think it’s as compelling as an alternative if you still have to support the old Sparkle alongside.
Another alternative is to support only 10.7+, in new versions of your app. I’m aware of the benefits of supporting older OS X versions, but they’re likely not cost effective for you as a developer.
Yet another alternative is create separate app targets for 10.6 and 10.7+, leading to separate app bundles. You make both publicly available for download, or you can supply the 10.6 version on request.
|