web-dev-qa-db-fra.com

La commande de l'éditeur de liens a échoué avec le code de sortie 1 (utilisez -v pour voir l'invocation), Xcode 8, Swift 3

Je ne peux pas me débarrasser de cette erreur!

 

J'ai essayé toutes sortes de choses, comme effacer les données dérivées (Préférences-> Emplacements-> cliquer sur la flèche grise pour ouvrir le dossier Données dérivées dans le Finder-> cliquer avec le bouton droit de la souris, passer à la corbeille), nettoyer le projet (CMD + Maj + K ou Produit -> Nettoyer), mettre à jour carthage et ses dépendances, vérifier d'autres réponses sur StackOverflow (principalement des ajustements dans les paramètres de construction/phases), et recloner l'application depuis github, etc.

Le même projet fonctionne sur les ordinateurs de mes collaborateurs.

EDIT: De la réponse actuelle la plus cotée, j’ai pu déboguer un peu plus loin ... Je ne sais toujours pas comment y remédier. On dirait que j'ai quelque chose dans le projet deux fois? J'ai regardé et je ne trouve rien qui apparaisse deux fois!

Voici une image du journal:  

78
Jake Dobson

je faisais face au même problème aujourd'hui dans xcode 8 version 8.3.2

clic droit sur le problème -> révéler dans le journal

 enter image description here

alors vous êtes en mesure de vérifier ce qui cause ce problème

 enter image description here

141
umairqureshi_6

Peut-être que vous avez installé un fichier pod et que vous essayez toujours de construire à partir du fichier .xcodeproj au lieu de .xcworkspace

86
Aashish

la seule chose qui a fonctionné pour moi a été d'exécuter pod deintegrate et pod install

28
Charles Harring

avez-vous essayé un nettoyage? cmd + shift + k

15
Francisco Perez

Ok ... Alors voici ce qui a résolu mon problème ...

dans le fichier délégué de l'application:

#import "AppDelegate.h"
#import "DarkSkyAPI.h"
//#import "Credentials.h"

J'avais déjà importé Credentials.h dans le fichier DarkSkyAPI.m de mon projet. En commentant l’importation supplémentaire, l’erreur a disparu!

Quelques choses à mentionner et peut-être aider quelqu'un dans le futur. La réponse de @ umairqureshi_6 m'a aidée tout au long du processus, mais ne l'a pas résolue. Il a conduit à l'endroit où j'ai pu extraire l'information. Je n'arrêtais pas de voir les fichiers AppDelegate et DarkSkyAPI apparaître dans le journal des erreurs et les informations extraites du fichier Credentials étaient à l'origine de l'erreur. Je savais qu'il devait figurer dans l'un de ces 3 fichiers. J'ai donc immédiatement vérifié les importations, car je me suis souvenu d'avoir entendu dire que le fichier .h transportait toutes les importations de son fichier. Boom!

8
Jake Dobson

Je sais que la question a déjà été posée. Mais si cela aide quelqu'un à gagner du temps:… j'ai eu la même erreur. J'ai tout vérifié pour trouver une très petite et stupide erreur de mon côté. J'ai importé un fichier personnalisé ManagedObject de données de base dans un contrôleur de vue de mon projet. J'ai accidentellement importé le fichier .m au lieu du fichier .h qui était à l'origine du symbole dupliqué en raison d'une erreur d'architecture (échec de la commande de l'éditeur de liens) car mon fichier .m de classe de propriétés importait le fichier .h de la classe de données principale causant une importation en double. 

Il suffit donc de vérifier si vous avez importé les bons fichiers avant d’essayer plusieurs solutions.

5
Priyanka

Beaucoup de solutions sont mentionnées ci-dessus. Personne n'a travaillé pour moi (mais essayez s'il vous plaît d'abord ci-dessus).

Sélectionnez Projet -> Sélectionnez Cible -> Structure et bibliothèques liées -> Ajouter toutes les bibliothèques de pod. (supprimer s'ils existent dans les fichiers binaires incorporés)

Maintenant, supprimez-les du Dossier Framework dans l'explorateur de fichiers de gauche de xcode.

Cela a résolu mon problème.

4

Sélectionnez le projet-> Phase de construction-> Lier le binaire avec les bibliothèques et ajoutez toutes les bibliothèques de pod.

3
K Prasad

Pour tous ceux qui ont ce problème avec le framework Flurry. C’est ce qui a corrigé mon problème… .. Pour moi, le problème était que j’avais importé les fichiers suivants mais ne les avais jamais utilisés . 

Donc tout ce que j'avais à faire était d'aller dans les paramètres de cible du projet et de supprimer ces 2 fichiers de la section "Structure et bibliothèques liées" et le problème était résolu.

2
Cedan Misquith

J'ai eu le même problème en utilisant Carthage pour les dépendances. 

Il suffit d'aller dans Sélectionner un projet -> Paramètres de construction -> Rechercher pour activer le code binaire -> S'il est sélectionné à Oui, sélectionnez Non.

Cela a résolu ce problème pour moi.

2
A.Silva

Dans mon cas, la raison de l'erreur est la bibliothèque qui a été liée deux fois.

J'utilise react-native donc il a été lié automatiquement en utilisant react-native link et manuellement dans xcode.

1
Stanislav Mayorov

Il me suffisait de faire import Foundation!

J'utilisais Kitura pour le côté serveur Swift et j'oubliais cela!

1
Honey

Je n'ai pas eu ce problème lorsque j'ai construit et exécuté sur mon propre appareil. Seulement eu ce problème avec les simulateurs. Je viens tout simplement de redémarrer mon ordinateur et de l'exécuter. Ça a marché.

1
James Ryu

J'ai eu le même problème.

La cause était que j'ai déclaré même variable globale dans 2 fichiers . Donc, il y avait même erreur en disant 2 symboles en double .

La solution consistait à supprimer ces variables.

1
Ajit A. Kenjale

Voici mon problème et ma solution: 

J'ai supprimé deux fichiers du code source à l'aide de l'arborescence source (contrôleur de version). Après avoir appliqué le diff contenant les deux classes que j'ai supprimées, Xcode ne l'a pas ajouté automatiquement. Donc, j'ai eu une erreur de l'éditeur de liens.

J'ai ajouté manuellement les fichiers, par un clic droit sur le nom du groupe et sélectionnez "Ajouter des fichiers à". Maintenant mon erreur a été résolue.

Si quelqu'un a rencontré l'erreur de l'éditeur de liens concernant le fichier de classe, essayez de l'ajouter manuellement.

1
Sujananth

Je testais le framework Sparkle avec CocoaPods.

Malheureusement, j'ai mis "pod 'Sparkle', '~> 1.21'" dans le fichier PodFile au mauvais endroit. Je le mets sous Testing (pour les tests unitaires).

Une fois placé au bon endroit dans PodFile, tout va bien.

1
pdq

Les autres réponses ne fonctionnaient pas pour moi alors je partage ici ma solution au cas où cela pourrait aider quelqu'un d'autre:

Mon problème était que je configurais le fichier podfile de mon XCode-Project pour la mauvaise plate-forme. Remplacer "plate-forme: ios" au début de mon fichier Podfile par "plate-forme: macos" m'a permis de supprimer l'erreur.

1
Vorashy

J'ai eu le même problème. Si vous recherchez un projet github, utilisez plutôt git lfs clone au lieu d'utiliser git clone, car certains fichiers volumineux ne sont parfois pas correctement clonés à l'aide de git uniquement. Assurez-vous également que votre bitcode est désactivé.

0
Aman pradhan

Dans mon cas, j'ai changé le nom Target dans ma Podfile Donc, c'est créer la même erreur pour moi.

Solution

Il suffit d'aller project-> Build Phase->Link Binary with libraries Supprimer l'ancienne FrameWorks en cliquant sur minus button(-) Et nettoyer et exécuter à nouveau. C'est le travail moi.

 enter image description here

Supprimer le .framework indésirable.

0
Krunal Nagvadia

Pour moi, le fichier de verrouillage de la pierre précieuse spécifiait une version plus ancienne des cocoapodes que celle que j'avais installée. Je devais rebrancher et exécuter bundle exec pod install au lieu de pod install

0
Jason

Assurez-vous que la case Find Implicit Dependencies est cochée.

(Produit -> Schéma -> Éditer un schéma -> Construire -> Trouver des dépendances implicites)

0
llama591