it-swarm.com.de

"Linker-Befehl mit Exit-Code 1 fehlgeschlagen", wenn Google Analytics über CocoaPods verwendet wird

Ich versuche, Google Analytics zu einer in Swift geschriebenen iOS-App hinzuzufügen. Ich habe die Anleitung befolgt, die die Frameworks über CocoaPods hinzufügt, und einen Überbrückungsheader hinzugefügt, aber ich bekomme immer noch:

Linker command failed with exit code 1

Meine Poddatei hat use_frameworks! Ich frage mich also, ob das etwas damit zu tun hat ... es gibt keine zusätzlichen Informationen auf der Analytics-Site, was ich sehen kann.

BEARBEITEN: Ich habe festgestellt, dass nach dem Anzeigen der vollständigen Fehlermeldung Folgendes angezeigt wird:

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

Bei der Suche nach diesem Problem wird Google aktualisiert, um Bit-Code zu unterstützen, das Kakaobohnen-Framework jedoch zu diesem Zeitpunkt nicht aktualisiert.

13

Ich hatte das gleiche Problem. Glücklicherweise können Sie Google Analytics mit aktiviertem BitCode verwenden. Dies ist jedoch etwas verwirrend, da Google den CocoaPods-Support eingerichtet hat.

Es gibt tatsächlich 2 CocoaPods, die Sie verwenden können:

  • 'Google Analytics'
  • 'Google Analytics'

Das erste ist das "neueste", aber es ist an die größeren Google-Pods gebunden, sodass Bitcode nicht unterstützt wird. Die zweite ist nur für Analytics und unterstützt BitCode. Da letzteres jedoch keine zusätzlichen Google-Pods enthält, sind einige Anweisungen zum Einrichten falsch.

Sie müssen die v2-Methode zum Einrichten von Analysen verwenden:

// 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")

Für den Rest der Google Analytics-API können Sie die Dokumentation zu Version 3 verwenden (Sie müssen keine Version 2 verwenden).

Der Cocoapod 'Google/Analytics' zum Zeitpunkt dieser Veröffentlichung unterstützt BitCode weiterhin nicht. Siehe hier

9
Hiep Dam

Gehen Sie zu Ihren Build-Einstellungen und ändern Sie die Einstellungen für das Ziel zunächst auf ENABLE_BITCODE = YES.

10
dokun1

Hatte dieses Problem, aber es stand nicht in Zusammenhang mit der Bitcode-Einstellung. Ich hatte irgendwie doppelte Framework-Dateien im Frameworks-Ordner meines XCode-Projekts. Ich habe alle Framework-Dateien gelöscht, die rot waren (und Duplikate). Dies behebte den Fehler "Apple Mach O, Linker-Befehl mit Beendigungscode 1 fehlgeschlagen".

7
lucius degeer

Das hat für mich funktioniert:

sie müssen die libPods.a-Bibliothek aus Linked Frameworks und .__ entfernen. Bibliotheksabschnitt von target.

5
Aitor Pagán

Stellen Sie sicher, dass Sie die Datei .xcworkspace nicht die Projektdatei aus dem xCode-Menü Projekt öffnen, wenn Sie mit Pods arbeiten. Das sollte das Problem mit dem Linken lösen.

2
Atlas_Gondal

Schließen Sie Xcode, benennen Sie den Ordner um. Erstellen Sie dann einen neuen Ordner mit dem vorherigen Namen. Führen Sie das Projekt aus, stoppen Sie das Projekt. Löschen Sie den neuen Ordner, benennen Sie den alten Ordner um und führen Sie ihn erneut aus. 

Mein iPad Pro-Simulator ist von diesem Problem betroffen. Es ist etwas, das mich aufregt, so viel harte Arbeit ... hoffentlich arbeitet Google durch Bugs für das nächste SDK. 

2
dnaatwork.com

Wenn Sie in der Header-Datei eine Konstante ohne statische Schreibweise deklarieren, wurden einige Zeiten angezeigt. so was

const int k = 10;

es sollte sein: 

static const int k = 10;
1
Ahd Radwan

Sie haben eine andere Option ... Google Analytics installieren, ohne CocoaPods zu verwenden: 

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

0
Bisca

Build-Einstellungen> Bitcode aktivieren> Nein 

0
Jasveer

Versuchen Sie, jegliche Spur von Cocoapods-Pods mit pod deintegrate then zu entfernenRun pod install

0

Als ich "iOS Deployment Target" von "IOS 10.0" auf "iOS 10.2" des aktuellen (meines Handys) umstellte, war das Problem für mich verschwunden.

Gebäudeeinstellungen> Bereitstellung> iOS-Bereitstellungsziel

0
Steve Bay

Dies ist normalerweise der Fall, wenn Cocoapods verwendet werden und Sie aus dem xcproject erstellen, das die Cocoapod-Bibliotheken nicht kennt.

0
iAleksandr

Ich hatte das gleiche Problem mit xcode 7.3. Einige meiner Dateien .h und .m wurden zweimal hinzugefügt.

0
John

Ich habe wieder Analytics über Kakao-Pods hinzugefügt und Bit-Code fürs Erste deaktiviert.

Hoffentlich wird eine zukünftige Kakaoschotenversion dies unterstützen.

0