web-dev-qa-db-fra.com

"Echec de la commande du lieur avec le code de sortie 1" lors de l'utilisation de Google Analytics via CocoaPods

J'essaie d'ajouter Google Analytics à une application iOS écrite en Swift. J'ai suivi le guide qui ajoute les frameworks via CocoaPods et ajouté un en-tête de pontage mais je reçois toujours:

Linker command failed with exit code 1

Mon podfile a use_frameworks! donc je me demande si cela a quelque chose à voir avec cela ... il n'y a aucune information supplémentaire sur le site Analytics d'après ce que je peux voir.

EDIT: J'ai remarqué qu'après l'affichage du message d'erreur complet, le message suivant s'affiche:

ld: '/Users/simon/Programming/VenueNow/Pods/GoogleUtilities/Libraries/libGTM_NSData+zlib.a(GTMNSData+zlib.o)' does not contain bitcode. 
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

Et la recherche de ce problème fait apparaître que Google a mis à jour le code binaire, mais n'a pas encore mis à jour le cadre de gestion des cacaoyers.

13
SimonTheEngineer

J'ai eu le même problème. Heureusement, vous pouvez utiliser Google Analytics avec BitCode activé, mais c'est un peu déroutant à cause de la manière dont Google a configuré son support CocoaPods.

Il y a actuellement 2 CocoaPods que vous pouvez utiliser:

  • 'Google Analytics'
  • 'Google Analytics'

Le premier est le "dernier" mais il est lié aux plus grands pods de Google, il ne supporte donc pas Bitcode. Le second est uniquement pour Analytics et prend en charge BitCode. Cependant, comme ce dernier n'inclut pas de pods Google supplémentaires, certaines des instructions relatives à sa configuration sont incorrectes.

Vous devez utiliser la méthode v2 de configuration des analyses:

// Inside AppDelegate:

// Optional: automatically send uncaught exceptions to Google Analytics.
GAI.sharedInstance().trackUncaughtExceptions = true

// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
GAI.sharedInstance().dispatchInterval = 20

// Create tracker instance.
let tracker = GAI.sharedInstance().trackerWithTrackingId("XX-XXXXXXXX-Y")

Le reste de l'API Google Analytics vous permet d'utiliser la documentation de la v3 (vous n'avez pas besoin d'utiliser la v2).

Le cocoapod 'Google/Analytics' au moment d'écrire ces lignes ne supporte toujours pas BitCode. Vois ici

9
Hiep Dam

Accédez à vos paramètres de construction et basculez les paramètres de la cible sur ENABLE_BITCODE = YES pour le moment.

10
dokun1

Avait ce problème, mais il n'était pas lié au paramètre de bitcode. J'avais en quelque sorte fini avec des fichiers de structure en double dans le dossier Frameworks de mon projet XCode. J'ai supprimé tous les fichiers de framework qui étaient rouges (et les doublons). Cela a résolu l'erreur "Apple Mach O, la commande de l'éditeur de liens a échoué avec le code de sortie 1".

7
lucius degeer

Cela a fonctionné pour moi:

vous devez supprimer la bibliothèque libPods.a de Linked Frameworks et Section bibliothèques de la cible.

5
Aitor Pagán

Assurez-vous d’ouvrir le fichier .xcworkspace et non le fichier de projet du menu Projet xCode lorsque vous utilisez des modules. Cela devrait résoudre le problème avec la liaison.

2
Atlas_Gondal

Fermez Xcode, renommez le dossier. Créez ensuite un nouveau dossier portant le nom précédent. Exécutez le projet, arrêtez le projet. Supprimez le nouveau dossier, renommez l’ancien dossier et réexécutez-le. 

Mon simulateur iPad Pro est concerné par ce problème. C’est quelque chose qui me met en colère, tellement de travail acharné… espérons que Google corrige des bogues pour le prochain SDK. 

2
dnaatwork.com

Quelques fois sont apparus si vous déclarez une constante dans le fichier d’en-tête sans notation statique. comme ça

const int k = 10;

cA devrait etre: 

static const int k = 10;
1
Ahd Radwan

Vous avez une autre option ... installez Google Analytics sans utiliser CocoaPods: 

https://developers.google.com/analytics/devguides/collection/ios/v3/sdk-download

0
Bisca

Paramètres de construction> Activer le code binaire> Non 

0
Jasveer

Essayez de supprimer toute trace de dosette de cocoapodes en utilisant pod deintegrate thenRun pod install

0
Oubaida AlQuraan

Lorsque j'ai remplacé 'IOS 10.0' pour 'iOS Deployment Target' par 'iOS 10.2' actuel (mon téléphone), le problème avait disparu pour moi.

Paramètres de bâtiment> Déploiement> Cible de déploiement iOS

0
Steve Bay

Cela se produit généralement lorsque vous utilisez Cocoapods et que vous construisez à partir du xcproject qui ne connaît pas les bibliothèques de cocoapod.

0
iAleksandr

J'ai eu le même problème avec xcode 7.3. C'est parce que certains de mes fichiers .h et .m ont été ajoutés deux fois.

0
John

J'ai eu recours à nouveau pour ajouter Google Analytics via des dosettes de cacao et pour désactiver le code binaire pour le moment.

Espérons qu'une future version des cosses de cacao le supportera.

0
SimonTheEngineer