Je ne suis pas vraiment en désaccord avec DarkDust de la réponse, mais si je peut canaliser mon intérieur Bill Clinton, cela dépend de ce que le sens des prises en charge est :)
Apple ne veut pas que vous le faire pour de apps de l'App Store, mais le système d'exploitation certainement le permet. Jailbreak apps utilisez cette technique tout le temps. Fondamentalement, vous utilisez un UNIX standard technique dynamique d'ouvrir un cadre/la bibliothèque, et puis des trucs. Le dlopen fonction vous permet d'ouvrir la bibliothèque en passant par le chemin d'accès à ce cadre, ou dylib. À partir de quelques docs pour la construction de jailbreak apps, voici un exemple d'appel d'un init()
fonction implémentée à l'intérieur de votre propre dylib:
#include <dlfcn.h>
initWrapper() {
char *dylibPath = "/Applications/myapp.app/mydylib2.dylib";
void *libHandle = dlopen(dylibPath, RTLD_NOW);
if (libHandle != NULL) {
// This assumes your dylib's init function is called init,
// if not change the name in "".
void (*init)() = dlsym(libHandle, "init");
if (init != NULL) {
init();
}
dlclose(libHandle);
}
}
En outre, le défaut de restriction contre vous permettant de construire une bibliothèque dynamique de projet pour iOS est quelque chose dans XCode que vous avez la possibilité de remplacer par la modification d'une partie de XCode fichiers xml:
Construire et utiliser dylib sur iOS
Une fois que vous faites cela, vous pouvez construire une normale iOS .dylib bibliothèque, et de l'utiliser par l'exemple de code ci-dessus. (oui, vous aurez probablement à débloquer cette fonctionnalité de nouveau chaque fois que vous installez un nouveau XCode version).
Il n'est donc pas une limitation technique, mais un Magasin d'Application de la politique de limitation. Si vous n'êtes pas limité à l'App Store, alors vous pouvez le faire. Notez que cette technique n'a pas besoin de jailbreak, même si l'application est en mode bac à sable, il peut limite où dylibs peut être chargé de.
Edit: afin de vous assurer que cette information n'est pas perdu pour l'avenir pourriture des liens, voici le contenu du lien que j'ai fourni sur la façon d'activer iOS dylibs dans Xcode. (Remarque: ce processus fonctionne encore sur Xcode 4, mais voir le commentaire(s) ci-dessous pour les mises à jour des chemins d'accès, etc.) La Source est l' iOS Place blog:
Xcode ne vous permet pas de construire dylib pour iOS. L'application sera rejetée si elle n'est pas binaire. Mais j'ai une application qui a architecture de plug-in pour charger les modules optionnels. Je veux juste un prototype rapide de prouver concept avant de pleinement port pour iOS. C'est plus rapide à faire si dylib pourrait simplement de travailler. Donc, cet article montre comment créer et utiliser dylib, mais être conscient de ne pas être approuvé à l'App Store. (Testé avec Xcode 3.2.4 sur 10.6.4)
1. Ouvrir ces fichiers dans la Liste des propriétés de l'Éditeur: /Développeur/plates-formes/MacOSX.de plate-forme/Developer/Library/Xcode/Spécifications/MacOSX Types de Produits.xcspec et /Développeur/plates-formes/iPhoneSimulator.de plate-forme/Developer/Library/Xcode/Spécifications/Simulateur d'iPhone, ProductTypes.xcspec
2. Recherchez l'élément dans le "MacOSX Types de Produits.xcspec" qui a le type de produit com.apple.product-type.library.dynamic
et faites-le glisser vers le "Simulateur d'iPhone, ProductTypes.xcspec".
3. Ouvrir "MacOSX Types De Colis.xcspec" et "Simulateur d'iPhone PackageTypes.xcspec", à la même place.
4. Recherchez l'élément dans le "MacOSX Types de Produits.xcspec" qui a le type de colis com.apple.package-type.mach-o-dylib
et faites-le glisser vers le "Simulateur d'iPhone PackageTypes.xcspec".
5. Répétez les étapes pour le "iPhoneOS.plate-forme" et de relancer Xcode si elle a été en cours d'exécution.
Maintenant, permet de construire un dylib. Commencer avec le "Cocoa Touch Bibliothèque Statique" Templete. Qui doit la Fondation.dans le cadre du projet. Voici les modifications que j'ai apportées sur le dessus de la templete pour construire dylib.
1. Ouvrez le fichier de projet.pbxproj (qui se trouve à l'intérieur du fichier de projet Xcode bundle) dans un Éditeur de Texte. Recherchez la chaîne "producttype", changez la valeur de com.apple.product-type.library.dynamic
;
Maintenant, ouvrez le projet avec Xcode, allez dans Projet->Modifier les Paramètres du Projet
2. "Répertoire d'Installation" ensemble pour @executable_path/
parce que j'ai l'intention de mettre la dylib dans le même répertoire que l'application exécutable.
3. "Mach-O, Type" set de Bibliothèque Dynamique
4. "Exécutable Extension" ensemble pour dylib
5. "Exécutable Préfixe" vide
6. Ajouter une ou deux méthodes simples à la bibliothèque et de le construire.
Maintenant, créez une application à tester. Cette fois, je choisis l' Affichage en fonction de l'Application. Le raccordement d'un UIButton et un UILable à l'appel de la lib et montrant message de retour. Vous pouvez télécharger le projet complet TestApp et de jouer avec elle.