web-dev-qa-db-fra.com

dyld: la bibliothèque non chargée en cocoapods 0.37 et Xcode 6.3

J'ai lu toutes les questions concernant l'erreur:

dyld: Library not loaded: @rpath/Bolts.framework/Bolts Referenced from: /private/var/mobile/Containers/Bundle/Application/1542F906-CCE1-4181-AC7C-B5E3EE50E7D7/eBikeMotion.app/eBikeMotion Reason: no suitable image found. Did find:

Ce qui rend mon application incapable d’exécuter sur un périphérique réel (mais elle fonctionne sans aucun problème dans le simulateur . Jusqu’à un certain point, j’imaginais que c’était un problème avec les frameworks que j’installais. jetait l'erreur, Alamofire, et le prochain Framework jetant l'erreur était la suivante, dans l'ordre alphabétique (boulons, comme vous pouvez le voir dans l'extrait de code) J'ai donc conclu que CocoaPods produit effectivement J'ai la dernière version (0.37) avec une nouvelle installation, Iv'e a essayé de créer un nouveau projet, j'ai essayé toutes les solutions proposées à ce problème sans aucune chance, je dois donc ouvrir un problème. en espérant que quelqu'un puisse m'aider.

Cordialement.

18
Jorge Revuelta

Après avoir réinstallé tout le système et ne pas avoir trouvé de solution, j'ai constaté que certaines des phases de construction obligatoires pour que CocoaPod fonctionne correctement étaient manquantes.

La solution à ce problème va pour les prochaines étapes:

  1. Désintégrez le projet cocoapods (vous pouvez installer l'outil avec Sudo gem install cocoapods-deintegrate). 

cocoapods-deintegrate sur Github

  1. Modifiez votre podfile:

    Vous devez définir votre lien cible avec link_with 'ProjectName'.

    Vous devez définir la cible pour vos pods: target 'ProjectName' do [pods here] end.

  2. Effectuez une installation avec pod install

  3. Cela fait, accédez à XCode et vérifiez les paramètres suivants:

    Dans les paramètres du projet, sous "Configurations", vérifiez que dans Debug and Release, vous avez un jeu de configuration nommé Pods-ProjectName.[debug|release]

    Dans votre cible, sous "Construire des phases", vous devriez avoir trois nouvelles phases qui devraient être nommées: Check Pods Manifest, Embed Pods Frameworks et Copy Pods Resources.

  4. Faites un nettoyage, puis construisez, puis exécutez dans votre appareil.

C'est tout.

39
Jorge Revuelta

Dans mon cas, j’ai suivi la réponse ci-dessus de @Jorge, mais cela n’a pas résolu le problème. L'erreur exacte était un peu différente car le fichier manquant était @rpath Pods.framework/Pods. Je l'ai finalement résolu avec l'aide du numéro 3586 de CocoaPods: 

Accédez à la section cible> Général> Cadres et bibliothèques liés Définissez Pods.framework et Pods_target.framework sur Optional

Nous essayons toujours de comprendre exactement pourquoi .... cette réponse contient des informations: qu'est-ce-que-cela signifie pour faible lien-un-cadre

24
Suz

Je devais résoudre deux problèmes:

  1. Allez à chaque cible puis Build Phases puis Link Binary With Libraries et sélectionnez Pods.framework. Réglez-le sur Optional.

  2. Cocoapods n'a pas créé les scripts d'exécution nécessaires pour ma deuxième cible. Ma première cible avait tous les scripts. La seconde pas. J'ai donc copié tous les scripts d'exécution manquants de la première à la deuxième cible. Vous devez appuyer sur le petit signe "+" en haut à gauche, ajouter un script d'exécution et coller le script à partir de l'autre cible. Je l'ai fait pour Check Pods Manifest.lock, Copy Pods Resources et Embed Pods Frameworks.

Ensuite, il a fonctionné sur l'appareil. Finalement.

11
Raphael

Avait le même problème en ajoutant des pods à WatchKit Extension. Lier la cible principale à l'application Watch n'est pas la meilleure option. Nous avons découvert que cocoapod 0.37.2 n’a pas ajouté le script 'Embed Pods Frameworks' à la phase de construction. 

Script: "${SRCROOT}/Pods/Target Support Files/Pods-ExtensionName/Pods-ExtensionName-frameworks.sh"

2
badeleux

Pour résoudre ce problème, vous devez modifier le statut de Link Binary with Libraries en phase de construction pour pod_projectName.framework et Bolt.framework.

J'ai la même erreur dans mon projet.

Obtenir une erreur dans CommonCrypto.framework

Erreur résolue en remplaçant Obligatoire par Facultatif

0
Bhavesh Patel

La chose la plus simple à faire serait de vous assurer que votre Protobuf.framework est une dépendance dans le schéma de votre cible dans l'étape de construction.

Cela indique à Xcode de compiler le fichier Protobuf.framework créé par votre installation/mise à jour du pod chaque fois qu'il crée votre cible.

0
Dino Alves

Pour que les cocoapodes génèrent les phases de construction, consultez le manifeste des pods, les cadres de pods incorporés et les pods de copie: 

1 - Accédez aux phases de construction et supprimez toutes les modifications personnalisées. Je devais tout supprimer dans la phase Link Binary With Libraries.

2 - Désintégrez un pod (ou supprimez simplement les fichiers vous-même)

3 - Exécuter une nouvelle installation de pod

Cela a fonctionné pour moi. Sans le premier pas, ça n'a jamais été le cas.

0
Siamaster