J'ai eu une erreur lors de l'archivage d'un projet. Ceci est mon environnement.
- Lion Mac OS
- Xcode 4.3.1
- SDK iOS 5.1
L'objectif de déploiement du projet est:
IPHONEOS_DEPLOYMENT_TARGET 3.2
L'erreur montre:
ld: library not found for -lPods
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Je suppose que Pods est CocoaPods que j'ai utilisé pour gérer les dépendances du projet XCode. https://github.com/CocoaPods/CocoaPods
Ceci est mon Podfile
platform :ios
dependency 'libPusher', '1.1'
Je ne sais pas ce que signifie l'erreur?
Réponses:
Ouvrez-vous l'espace de travail (qui a été généré par CocoaPods) au lieu du xcodeproj?
la source
Podfile
, spécifiez la plate - forme comme ceci:platform :ios, :deployment_target => "3.2"
. Cela devrait le configurer correctement lors de votre prochaine exécutionpod install
..xcworkspace
fichier, pas le.xcodeproj
. De cette façon, en plus de votre projet, Xcode connaît le projet dans lePods/
répertoire et comment le construirelibPods.a
..xcodeproj
ouvert, vous devez le faire fermer avant d'ouvrir le.xcworkspace
fichier.J'ai séparé l'application et les cibles de test dans le Podfile en utilisant
Il en est résulté respectivement deux nouveaux produits libPods-App.a et libPods-AppTests.a et ils ont rendu le produit précédent libPods.a obsolète. J'ai dû supprimer ce produit de la section Link Binary With Libraries de la configuration Build Phases des deux cibles.
la source
J'ai rencontré un problème similaire aujourd'hui.
Preview
avec l'existantDebug
etRelease
Maintenant, lors de la compilation de cette nouvelle
Preview
configuration, le compilateur ne serait pas en mesure de se lier aux pods et de me donner ce message:La solution:
Ce que je devais faire était de courir
à nouveau et ainsi configurer des cocoapods pour le nouveau
Preview
configuration. Il a mis à jour mon projet, l'espace de travail et le fichier de projet du Pod et le problème a disparula source
Assurez-vous que vous ouvrez
.xcworkspace
, pas.xcodeproj
la source
Aucune solution n'a fonctionné pour moi, c'est vraiment insupportable, il y a un fichier
libpods.a
(qui était de couleur rouge) je l'ai supprimé et tout fonctionnait bien! Bravo à moi;)la source
J'avais divisé mes listes de pods
Podfile
pour différentes cibles comme:Et a couru un
pod install
Cela a créé une nouvelle bibliothèque
libPods-ABC.a
à laquelle mon binaire devait se lier. Mais le bug était qu'il n'a pas supprimé la bibliothèque précédente, c'est-à-direlibPods.a
.Solution: Retirez la bibliothèque à
libPods.a
partirBuild Phases
deLink Binary With Libraries
.la source
J'avais un ancien fichier libPod.a spécifié (probablement causé par mes changements de cibles).
Paramètres du projet -> Phases de construction -> Lier le binaire aux bibliothèques
Habituellement, les cocoapods n'incluraient qu'une seule bibliothèque, comme
libPods-target.a
oulibPods.a
. Je l'ai résolu en supprimant le doublon.la source
Pods.debug
àPods-MyApp.debug
, alors maintenant j'ai seulement besoinlibPods-MyApp.a
(il y avait une icône "fanée" pour les ancienslibPods.a
),si vous rencontrez des problèmes avec ceci sur cocoapods v25 / Xcode 5
Le projet Pods Xcode définit désormais le paramètre de génération ONLY_ACTIVE_ARCH sur YES dans la configuration de débogage. Vous devrez définir la même chose sur votre projet / cible, sinon la construction échouera.
https://github.com/CocoaPods/CocoaPods/wiki/FAQ#running-into-build-failures-after-migrating-to-xcode-5-and-cocoapods-0250
MISE À JOUR Assurez-vous d'avoir les derniers gemmes / cocoapodes
Vous souhaiterez reconstruire le projet à l'aide de Pod Install pour reconstruire le projet.
la source
Si Xcode se plaint lors de la liaison, par exemple, bibliothèque non trouvée pour -lPods, il ne détecte pas les dépendances implicites.
Allez dans Produit> Modifier le schéma Cliquez sur Créer Ajouter la bibliothèque statique des pods et assurez-vous qu'elle est en haut de la liste Nettoyer et reconstruire Si cela ne fonctionne pas, vérifiez que la source de la spécification que vous essayez d'inclure a été tiré de github. Pour ce faire, recherchez dans / Pods /. S'il est vide (il ne devrait pas l'être), vérifiez que le ~ / .cocoapods / master //. Podspec contient l'URL correcte du hub git. Si cela ne fonctionne toujours pas, vérifiez vos paramètres d'emplacement de génération XCode. Accédez à Préférences -> Emplacements -> Données dérivées -> Avancé et définissez l'emplacement de génération sur «Relatif à l'espace de travail».
http://docs.cocoapods.org/guides/getting_started.html
la source
J'ai eu le même problème lorsque j'ai édité le Podfile en ajoutant la cible que j'utilisais sans cible auparavant.
Podfile
Après m'être interrogé, j'ai trouvé que sous les propriétés cibles >> onglet Général >> section Frameworks et bibliothèques liés, il y avait le nouveau libPods-xxxx.a et l'ancien libPods.a
Je viens de supprimer libPods.a et tout a bien fonctionné.
la source
Le wiki de CocoaPods sur GitHub a la bonne réponse dans leur FAQ :
Product > Edit Scheme
Build
<Project Dir>/Pods/<Name of spec you are trying to include>
. S'il est vide (il ne devrait pas l'être), vérifiez que le~/.cocoapods/master/<spec>/<spec>.podspec
contient l'url de github correcte.Preferences -> Locations -> Derived Data -> Advanced
et définissez l'emplacement de génération sur "Relatif à l'espace de travail".la source
Je renommais le projet en "NBSelector" de "Partners".
J'ai eu l'erreur «Bibliothèque introuvable pour libPods-Partners» après avoir renommé le projet. Xcode essayait de se lier à l'ancien fichier Partners.a. Supprimez-le simplement si vous avez installé podInstall après l'avoir renommé.
la source
L'utilisation de ONLY_ACTIVE_ARCH = NO dans tous les modules a résolu le problème pour moi. Pour rendre cela persistant, j'ai ajouté un crochet post_install à mon Podfile:
pod install
et tu as fini.la source
Avez-vous créé une «distribution» ou une configuration similaire pour créer des archives ad hoc et App Store? Comme beaucoup d'autres, j'ai suivi les recommandations d'Apple et surnommé la configuration `` Release '', je l'ai appelé `` Distribution '' et lui ai défini différentes règles de signature. Eh bien, c'était peut-être une recommandation avant d'introduire des schémas et l'option "Distribuer" dans l'Organisateur, de toute façon, je l'avais juste avant.
Ensuite, j'ai eu le même problème avec les pods. Tout a bien fonctionné lors du débogage, mais l'archivage a échoué avec une erreur de lien. Après avoir essayé ceci et cela, j'ai changé la configuration d'archivage de mon projet d'origine de «Distribution» à «Release» et l'erreur de lien a disparu.
Pourtant, l'archive n'est pas apparue dans l'Organiseur, bien que je puisse la localiser dans le système de fichiers, mais elle avait une taille nulle.
La dernière étape pour résoudre tout cela était de changer le paramètre "Ignorer l'installation" pour la configuration de "Libération" sur "NON". Notez que vous devez le faire uniquement pour votre projet principal, mais pas pour le projet Pods. Mieux vaut laisser le projet Pods tel quel, car il est généré à chaque fois que vous exécutez «pod install».
Mise à jour Je viens de recevoir une réponse des développeurs CocoaPods Cela ne semble pas fonctionner pour moi, car la configuration des pods était correctement définie. Mais cela pourrait aider quelqu'un d'autre.
la source
Dans mon cas, le problème était que l'emplacement des données dérivées de Xcode était réglé sur l'option "Legacy". La cible CocoaPods (libPods.a) était en cours de construction correctement, mais Xcode la recherchait au mauvais endroit.
Le basculer sur "Unique" (par défaut) a résolu le problème. Pour ce faire, accédez à Préférences> Emplacements et cliquez sur le bouton Avancé ...
la source
Seul l'ajout des "Chemins de recherche de bibliothèque" (dans les paramètres de construction de 'MyProject') à "Pods / build / Debug-iphonesimulator" a fonctionné pour moi (lors de l'utilisation du simulateur).
Je l'ai ici: https://github.com/CocoaPods/CocoaPods/issues/121#issuecomment-5452473
la source
Si vous archivez pour iOS7 et Xcode5 et avez obtenu ces erreurs, veuillez vous référer à ce lien. Il semble qu'Apple abandonne une architecture dont les cabosses de cacao avaient besoin https://github.com/CocoaPods/CocoaPods/pull/1352
la source
J'ai trouvé que la sélection de "Rechercher les dépendances implicites" (sous le schéma de produit / édition) résoudra ce problème au lieu d'avoir à ajouter des pods comme cible.
la source
J'ai parcouru toutes les réponses ici, mais pour moi, c'était incroyablement simple ... Allez dans Target -> Build Phases, puis supprimez libPods-YourProject.a, puis ajoutez-le à nouveau en utilisant le "+". Ne vous inquiétez pas si la bibliothèque est rouge, ça va.
la source
J'ai utilisé l'ancienne version de cocoapod après la mise à jour des cocoapods, cela me suggère de mettre à jour mon pod installé en raison d'une mise à jour majeure car je mets à jour après une longue période. Je le mets à jour et les nouveaux pods de version ont été mis à jour correctement. Mais après ça, j'ai eu l'erreur comme
library not found for -lPods-xxxprojectName-xxxxxpodName
Après avoir essayé tant de solutions données en réponse à ce problème, rien de tout cela n'a fonctionné pour moi. Ensuite, je suis allé dans le cadre de mon projet et j'ai constaté que le chemin des modules était un changement qui était activé
Other Linker Flag
Vérifiez votre
Manage Schemes
nom de pod correct et comparez-leOther Linker Flag
, changez-le s'il n'est pas similaireAncien chemin de pod était
-l"lPods-xxxprojectName-xxxxxpodName"
Mais les nouveaux pods étaient seulement
xxxxxpodName
si je les ai remplacésOther Linker Flag
par des nouveaux comme ci-dessousChangé en chemin de pod
-l"xxxxxpodName"
et cela a fonctionné.Je ne connais pas la raison parfaite derrière cela, mais cela pourrait aider quelqu'un.
la source
J'ai ouvert l'espace de travail, mais j'ai eu la même erreur.
Construire une architecture active uniquement définie sur OUI
résoudre mon problème.
la source
Résolu en suivant les étapes ci-dessous:
la source
Dans mon cas, j'ai
pod install
résolu le problème, après avoir créé des schémas de distribution et de publication.la source
J'ai eu le même problème lors de l'archivage pour la soumission. La discussion sur ce problème peut être trouvée ici: https://github.com/CocoaPods/CocoaPods/issues/155
En résumé, deux méthodes fonctionnent pour moi:
- platform :ios, :deployment_target => "5.0"
la source
Utilisation de Xcode 5 avec iOS 7
C'est ce que j'ai fait après avoir été coincé pendant une heure. Supprimez ARM64 du paramètre de construction> architecture valide.
AJOUT: De plus, pour mon cas, il ne s'agissait pas d'un emplacement de données dérivé. J'ai choisi un emplacement unique pour la construction.
la source
si vous utilisez iOS7 et Xcode 5, faites:
la source
J'ai essayé CHAQUE réponse dans ce fil en vain. Enfin, j'ai résolu mon problème en faisant correspondre le «chemin des produits de construction de pré-configuration» de mon projet cible avec la valeur du projet Pods. Il s'avère qu'ils construisaient vers deux emplacements de sortie différents. Aucune des autres suggestions de ce fil ne me concernait. Ce serait génial si XCode donnait une description d'erreur utile (comme POURQUOI il ne peut pas utiliser la lib - Fichier non trouvé, Aucune architecture correspondante trouvée, etc.).
la source
Dans ce problème, si vous avez déjà installé et mis à jour le pod dans votre système, votre Xcode ne peut pas trouver la bibliothèque Pods. Pour résoudre ce problème, veuillez rechercher les causes suivantes qui peuvent survenir:
la source
essayer
link_with 'YouTarget1', 'YouTarget2' ...
Mon projet a fonctionné, les cibles ont soudainement cessé de se compiler. Puis ajouté "link_with" et revenu à la normale.
Apparemment, maintenant il se connecte simplement à la première cible, c'est ce que dit le lien:
http://guides.cocoapods.org/syntax/podfile.html#link_with
la source
Si vous rencontrez toujours ce problème, essayez:
A fait le travail pour moi, j'espère que cela vous aidera.
la source