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.
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:
- Désintégrez le projet cocoapods (vous pouvez installer l'outil avec
Sudo gem install cocoapods-deintegrate
).
cocoapods-deintegrate sur Github
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
.Effectuez une installation avec
pod install
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
etCopy Pods Resources
.Faites un nettoyage, puis construisez, puis exécutez dans votre appareil.
C'est tout.
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
Je devais résoudre deux problèmes:
Allez à chaque cible puis
Build Phases
puisLink Binary With Libraries
et sélectionnezPods.framework
. Réglez-le surOptional
.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
etEmbed Pods Frameworks
.
Ensuite, il a fonctionné sur l'appareil. Finalement.
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"
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.
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.
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.