2016-02-08 1 views
0

Mon code utilise une bibliothèque externe utilisant dlsym (pour des raisons hors de mon contrôle).La bibliothèque iOS n'est pas chargée lors de l'utilisation d'IPA

Afin Xcode trouver ma bibliothèque, je devais faire 2 choses:

  • -force_load "$(SRCROOT)/pathTo/myLibrary.a"
  • Mort-Code Stripping: NO

Cela fonctionne bien quand l'esprit l'exécution du profil de débogage . À la fois sur le simulateur et sur un périphérique physique, la bibliothèque est chargée et fonctionne. Toutefois, si je crée un fichier AdHoc IPA et l'installe sur mon appareil, cette même bibliothèque n'est plus trouvée.

Quelle pourrait être la différence?

+1

Êtes-vous sûr qu'un ipa a le fichier 'myLibrary.a' à l'intérieur? App Store ne permettra pas de faire cela. Essayez simplement de lier une bibliothèque à un projet via Build Phases -> Bibliothèques de liens et essayez d'ajouter l'indicateur '-ObjC' à Other Linked Flags, peut-être que cela fonctionnera pour vous. Supprimez votre bibliothèque de Copy Bundle Resources si elle est présente. –

+0

Oui, si j'ouvre l'IPA avec un navigateur d'archives, je vois le fichier .a. Mais pourquoi je ne voudrais pas ça? Sinon, comment l'appareil peut-il recevoir cette bibliothèque? –

+1

Vous pouvez ajouter un seul fichier exécutable à un fichier .app, dont le nom est une valeur pour la clé 'CFBundleExecutable' à partir d'Info.plist. Votre bibliothèque sera compilée lorsque vous exécuterez la commande 'build' sur Xcode. –

Répondre

0

C'est ce qui a résolu le problème:

Dans Build Settings → Déploiement → bande de produit lié, sélectionnez NO.