Re: Migrating shared library plugins to Cocoa Touch Frameworks
Re: Migrating shared library plugins to Cocoa Touch Frameworks
- Subject: Re: Migrating shared library plugins to Cocoa Touch Frameworks
- From: Pascal Bourguignon <email@hidden>
- Date: Fri, 02 Dec 2016 22:55:25 +0100
> On 2 Dec 2016, at 15:37, Andreas Falkenhahn <email@hidden> wrote:
>
> On 02.12.2016 at 07:57 Pascal Bourguignon wrote:
>
>> Yes, dlopen is supported in iOS 8 and following.
>
> Is this support official or does it just work by chance and might stop working in the
> future? I've tried to find an official word from Apple concerning dlopen() on iOS
> but I haven't been successful so far. Is there one?
Yes, it’s “official”.
I’ve read the document about what is allowed and rejected for the AppStore, and this is not rejected.
>
>> But of course, you can only open and link with libraries that have been code signed properly.
>> We use dlopen to load at run-time frameworks properly code signed
>> and included in the application bundle
>
> So how does that work in practice? Should I create a Cocoa Touch Framework, code sign
> it, include it in the "Embedded binaries" section in Xcode in my project and select
> "Optional" for that framework in the "Linked frameworks and Libraries" section in
> Xcode and then just use dlopen() on the framework's executable as listed in the
> frameworks Info.plist?
http://framemywork.blogspot.fr/2015/01/ios-8-app-extensions-dlopen-loading.html <http://framemywork.blogspot.fr/2015/01/ios-8-app-extensions-dlopen-loading.html>
You would just embed the framework, without linking it.
> I can imagine that this works but once again the question is whether or not
> Apple officially supports directly dlopen()ing a framework executable? If they
> do, that would be great but if this is something that just happens to work right
> now but might not do so in future versions I'd rather do it in a more conventional
> way.
dlopen wasn’t available before iOS 7. It wasn’t officially supported in iOS 7, only from iOS 8 (when Xcode started to provide a iOS framework template).
There are applications published in the AppStore that use dlopen.
Now, the framework must be code signed and packaged with your application, so this doesn’t concern third-party plug-ins, or anything you’d download from the internet.
On the other hand, in iOS 9 they started to allow modular downloading of applications in the AppStore: you can install eg. a game with the first levels, and only download and install further levels modularly once the previous ones are completed;
http://ddeville.me/2014/04/dynamic-linking <http://ddeville.me/2014/04/dynamic-linking>
--
__Pascal J. Bourguignon__
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden