web-dev-qa-db-fra.com

La commande Apple Mach -O Linker a échoué

 random issue is happening

Après la mise à jour de mon installation POD, Xcode a généré un nouveau problème:

29
Phoenix Haroz

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.

92
blackops

Certaines fois, vous avez besoin d'une construction propre. Cela m'a aidé . Pour nettoyer la construction, allez Produit -> Nettoyer

18
MRustamzade

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.

  • CLANG_WARN_INFINITE_RECURSION 
  • CLANG_WARN_SUSPICIOUS_MOVE
  • GCC_NO_COMMON_BLOCKS

Définissez les valeurs pour celles-ci sur NO, puis nettoyez et construisez le projet.

14
AnujAroshA

Les étapes suivantes m'ont aidé à éliminer ce problème:

  1. Accédez au chemin du projet et supprimez le dossier Pods et le fichier Podfile.lock. 
  2. Réinstallez les pods en utilisant la commande "pod install".
  3. Ouvrez xcworkspace et nettoyez-le avant de l'exécuter. 

J'espère que cela fera gagner du temps à quelqu'un comme il l'a fait pour moi. 

13
Seema

Fermez votre projet et allez dans chemin du projet et sélectionnez votre projet avec .xcworkspace au lieu de .xcodeproj. Raison pour laquelle votre projet existant ne contient aucune bibliothèque que vous avez liée.

 ss

11
Naveen Kumar M

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

6
S.Jain

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.

3
Boomerange

Résolu - Meilleur moyen

pod deintegrate  
pod install

Ouvrez xcworkspace et nettoyez-le avant de l'exécuter.

2
Lakhdeep Singh

la solution pour moi était d'ouvrir le fichier .xcworkspace au lieu de .xcodeproj situé dans mon dossier '/ plateformes/ios'.

1
Punja Solanki

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.

1
Yuvraj Sinh

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: 

  • Créer un nouveau projet 
  • copier tous les fichiers nécessaires de l'ancien projet vers le nouveau (glisser-déposer, n'oubliez pas la case à cocher "Copier si nécessaire")
  • Construire et voir que cela fonctionne

Cela semble stupide et je ne sais pas pourquoi, mais cela a fonctionné.

0
Bepa1012

J'ai rencontré l'erreur en écrasant le projet.

Toujours rencontré l'erreur après:

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.

0
Bernie 2Google

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.

0
Shubham Singh

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é.

0
S.Yadav

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 ...

0
jocabola