web-dev-qa-db-fra.com

dyld: bibliothèque non chargée: @rpath avec iOS8

Je crée un cadre iOS avec Xcode6 et iOS8. Lorsque je fais le lien avec une application iOS et que je tente de l'exécuter sur l'appareil, le message d'erreur suivant s'affiche:

dyld: Library not loaded: @rpath/FrameworkName.framework/FrameworkName
  Referenced from: /private/var/mobile/Containers/Bundle/Application/0F2C2461-A68B-4ABA-A604-B88E6E9D1BB1/AppName.app/AppName
  Reason: image not found

Le paramètre de construction 'Runpath Search Paths' pour la structure est défini par défaut sur 

'@executable_path/Frameworks', '@loader_path/Frameworks'

Je n'ai trouvé aucune documentation liée à cela. C'était quelque chose de nouveau introduit avec Xcode6 et je m'attendrais à ce qu'il fonctionne simplement en incluant simplement le cadre dans toute application qui en a besoin.

48
ArdenDev

Faire ce travail

  1. Dans les paramètres du projet d'infrastructure, changez le répertoire d'installation de '/ Library/Frameworks' en '@executable_path /../ Frameworks'

  2. Dans le projet qui inclut ce cadre, ajoutez une phase de copie des fichiers et copiez ce cadre dans le dossier 'Frameworks'. Cela fait, assurez-vous que ce cadre est répertorié dans la section "Binaires incorporés".

60
ArdenDev

Problème résolu avec cette réponse . Selon @ vladof81:

Dans l'onglet Général de la cible, il existe un champ Binaires incorporés. Lorsque vous ajoutez le cadre, le crash est résolu.

La référence est ici sur les forums de développeurs Apple.

26
Tom Howard

Je recevais cette erreur sur une bibliothèque installée via CocoaPods. Nettoyer le dossier de construction (cmd + option + shift + k) puis faire un nettoyage (cmd + shift + k) a été ce qui a finalement résolu ce problème.

7
Stunner

Vérifiez si vous pouvez trouver un cadre en contexte sous:

Phases de construction> Cadres intégrés> 

Si ce n'est pas le cas, ajoutez simplement ce cadre dans "Embed Frameworks" après l'avoir ajouté à la section "Frameworks" de votre projet.
 enter image description here

3
Venu Gopal Tewari

Pour moi, c’est à cause du problème SSL que j’avais défini les certificats de développeur et de distribution sur mon Mac (trousseau) sur «Toujours faire confiance» pour l’un de mes autres projets. Je devais les remettre à «Utiliser les paramètres par défaut du système». ça fonctionnait pour moi alors !!

3
Gee Kay

Si vous utilisez Carthage

Exécuter carthage update sur le terminal

Allez dans Paramètres du projet -> Phases de construction -> Frameworks Carthage Copy 

Ajouter une ligne dans Entrer des fichiers : $(SRCROOT)/Carthage/Build/iOS/YOURLIBRARY.framework

Ajoutez cette ligne à Fichiers de sortie: $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/TTTAttributedLabel.framework

2
Ronaldo Albertini

Outre les solutions ci-dessus, vérifiez à nouveau les chemins des frameworks inclus dans votre application sous 

Paramètres de construction -> Chemins de recherche -> Chemins de recherche du framework

1
prodeveloper

Quand aucune de ces solutions ne fonctionne:

  1. (Facultatif) Obtenez des informations claires à partir de ici sur un type de chemin de recherche différent
  2. Assurez-vous que vos chemins de fichiers .framework sont ajoutés dans Build Settings -> Framework Search Paths. Vous pouvez conserver tous les fichiers de structure quelque part dans App/libs/ et ajouter ce dossier et l'activer de manière récursive.
  3. Assurez-vous que vos chemins de fichiers .a sont ajoutés dans Build Settings -> Library Search Paths.

 enter image description here

1

Fait la bibliothèque qui montre non chargé changé de requis à facultatif dans les fichiers binaires et les cadres liés. Cela fonctionne parfaitement maintenant

0
Saranjith

J'ai installé des bibliothèques tierces à l'aide de Cocoapods. Vous avez la même erreur, j'ai tout essayé mais j'ai finalement réalisé que je n'avais pas eu use_frameworks! dans mon fichier pod. 

Donc supprimé la bibliothèque actuellement installée, ajouté use_frameworks! ligne dans le fichier pod, réinstallé les bibliothèques et tout a fonctionné pour moi.

0
akshayk80

J'ai également eu le même genre de problème où je ne pouvais pas lancer l'application et l'application plantait avec le message ci-dessus:

dyld: Bibliothèque non chargée: @ rpath/FrameworkName.framework/FrameworkName Référencé à partir de:/private/var/mobile/Containers/Bundle/Application/xxxxxxxxxxxxxxxxxxx

Raison: image non trouvée

Voici mon approche qui m'a aidé à résoudre cette erreur:

1.Veuillez supprimer votre application de l'appareil, Nettoyer la construction et reconstruire et exécuter sur l'appareil.

2.Si les étapes ci-dessus ne vous aident pas, veuillez vérifier les paramètres ci-dessous:
Dans "TARGET"> "Paramètres de construction"> "Chemins de recherche pour les chemins d’accès", recherchez les valeurs "$ (hérité)" & "@ chemin_exécutable/Frameworks", n'hésitez pas à les ajouter, au cas où elles n'existeraient pas.

Construisez votre application et exécutez-la sur l'appareil

0
Aks