Assurez-vous d’ouvrir le fichier .xcworkspace
plutôt que le fichier de projet (.xcodeproj
) lorsque vous travaillez avec des pods. Cela devrait résoudre le problème avec la liaison.
Certaines fois, vous avez besoin d'une construction propre. Cela m'a aidé . Pour nettoyer la construction, allez Produit -> Nettoyer
Plusieurs cas sont à l'origine de ce problème. Pour le moment, cette question n'a pas de réponse acceptée et j'ai également trouvé une autre solution au même problème, je poste ici ma réponse/expérience.
Dans votre application, allez à Cible -> Paramètres de construction, puis vous trouverez les attributs suivants.
Définissez les valeurs pour celles-ci sur NO, puis nettoyez et construisez le projet.
Les étapes suivantes m'ont aidé à éliminer ce problème:
J'espère que cela fera gagner du temps à quelqu'un comme il l'a fait pour moi.
Supprimez les fichiers locaux de WikitudeSDK de la cible. Xcode est en train de confondre les chemins de bibliothèque, lesquels sont à choisir - pod ou locaux.
Essayez également de réinstaller podfile et de supprimer wikitude du fichier pod pour les paramètres de chemin de recherche de . IN de l'éditeur de liens, dans les paramètres de construction, vérifiez les chemins mentionnés pour trouver la bibliothèque requise.
Enfin, installez des gemmes avant de mettre à jour les pods
Vous devez cocher l'option Link Binary With Libraries. Parfois, vous construisez un module qui ne fait plus partie de votre projet.
Dans le panneau de gauche, cliquez sur le nom de votre projet, puis à nouveau sous Cibles (cliquez sur le nom), puis Créer phases> Lier les fichiers binaires avec des fichiers . Supprimez tout ce que vous n'utilisez pas.
Résolu - Meilleur moyen
pod deintegrate
pod install
Ouvrez xcworkspace et nettoyez-le avant de l'exécuter.
la solution pour moi était d'ouvrir le fichier .xcworkspace au lieu de .xcodeproj situé dans mon dossier '/ plateformes/ios'.
J'ai la même erreur que la duplication de "nom de variable". Vous devez vérifier toutes les variables et tous les noms de fonctions de tous les fichiers .m et vous assurer qu'ils ne sont pas identiques dans les autres fichiers. Puis, nettoyez et générez.
Cela fonctionne pour moi.
Je ne sais pas pourquoi l'erreur s'est produite dans mon cas. Je réutilisais du code provenant d'un autre projet que j'avais créé il y a quelque temps. Après l'adaptation du code, la commande "Echec de la commande Apple Mach -O Linker" a toujours été utilisée. Ma meilleure hypothèse est que cela s'est produit parce que j'ai créé/supprimé certains fichiers du projet.
La chose qui a résolu pour moi était la suivante:
Cela semble stupide et je ne sais pas pourquoi, mais cela a fonctionné.
J'ai rencontré l'erreur en écrasant le projet.
Toujours rencontré l'erreur après:
Changer les paramètres de coup
ionic cordova platform supprime ios plutôt que de simplement supprimer le dossier de la plate-forme ios avant chaque nouvelle construction (et bien sûr rajouter la plate-forme)
mettre à jour Ruby selon les instructions: https://forum.ionicframework.com/t/x-code-8-beta-2-Apple-mach-o-linker-id-error/71998
Une erreur était résolue après avoir changé de branche dans github, mais une des autres méthodes de dépannage a peut-être joué un rôle. Désormais, toutes les branches fonctionnent sur xcode sans l'erreur Mach -O Linker.
J'avais affronté le même problème. J'ai déclaré deux classes avec le même nom. Par conséquent, il était en conflit avec le nom de la classe. Cela a fonctionné pour moi après la mise à jour du nom de la classe.
J'utilise XCode pour compiler l'application ionique 3.
cli packages: (/usr/local/lib/node_modules)
@ionic/cli-utils : 1.10.1
ionic (Ionic CLI) : 3.10.1
global packages:
Cordova CLI : 7.0.1
local packages:
@ionic/app-scripts : 2.1.4
Cordova Platforms : Android 6.2.3 ios 4.5.0
Ionic Framework : ionic-angular 3.6.0
System:
ios-sim : 5.0.8
Node : v8.4.0
npm : 5.4.0
OS : OS X Yosemite
Xcode : Xcode 7.2 Build version 7C68
Il n'y avait pas d'autorisation d'écriture dans la plupart des fichiers d'ios, ce qui était le problème principal.
Je viens de changer l'autorisation du fichier ios et le problème a été résolu en utilisant la commande.
Sudo chmod -R 775 platforms/ios/
A bien fonctionné.
J'avais un problème similaire et je devais simplement m'assurer d'activer la case à cocher "copier si nécessaire" lors de l'ajout du cadre dans le projet. Seulement la référence n'a pas fonctionné pour moi ...