2016-02-09 7 views
13

Ich versuche Google Analytics zu einer in Swift geschriebenen iOS-App hinzuzufügen. Ich habe die Führung gefolgt, die die Gerüste über CocoaPods und hinzugefügt, um eine Überbrückung Header hinzufügt, aber ich bin noch immer:'Linker-Befehl fehlgeschlagen mit Exit-Code 1' bei Verwendung von Google Analytics über CocoaPods

Linker command failed with exit code 1 

Mein podfile tut use_frameworks haben! Ich frage mich also, ob das etwas damit zu tun hat ... Es gibt keine zusätzlichen Informationen auf der Analytics-Website von dem, was ich sehen kann.

EDIT: Ich habe bemerkt, dass nach der vollständigen Fehlermeldung sieht die folgende Anzeige erscheint:

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 

Und für das Problem der Suche nach oben bringt, dass Google aktualisiert Bit-Codes zu unterstützen, aber hatte die nicht aktualisiert Kakaofrüchte Rahmen zu dieser Zeit.

+0

Für andere mit ähnlichem Problem, und sie haben Pods, stellen Sie sicher, dass Sie "pod install" ausführen, bevor Sie Ihren Schwanz zu weit verfolgen. – Sean

Antwort

9

Ich hatte das gleiche Problem. Glücklicherweise können Sie Google Analytics mit aktiviertem BitCode verwenden, aber es ist ein wenig verwirrend, weil Google seine CocoaPods-Unterstützung eingerichtet hat.

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

  • 'Google/Analytics'
  • 'Google'

Die erste ist die "letzte", aber es ist auf die größere Google gebunden Pods, so dass Bitcode nicht unterstützt wird. Der zweite ist nur für Analytics und unterstützt BitCode. Da letzteres jedoch keine zusätzlichen Google-Pods enthält, sind einige Anweisungen zur Einrichtung falsch.

Sie haben die v2 Methode der Einrichtung Analytik 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") 

Der Rest der Google Analytics-API können Sie die v3 Dokumentation verwenden (Sie müssen nicht v2 verwenden müssen).

Die "Google/Analytics" -Cocoapod unterstützt derzeit BitCode noch nicht. See here

+0

Reinigungsprojekt arbeitete für mich. :) –

+1

'BitCode' war das Schlüsselwort, das mir geholfen hat. Danke Kumpel –

10

Gehen Sie zu Ihren Build-Einstellungen und schalten Sie die Einstellungen des Ziels für jetzt auf ENABLE_BITCODE = YES.

+2

Danke, aber diese Option ist bereits auf JA gesetzt. Ich denke, der Konflikt ist, dass die Kakaofrucht-Version von Analytics keinen Bit-Code unterstützt, sondern die neueste Version. Ich füge das gerade manuell hinzu und werde es aktualisieren, wenn es funktioniert. – SimonTheEngineer

+2

Für mich war das Ändern dieser Einstellung in "NEIN" der geeignete Fix. – taky2

0

Ich habe wieder auf Analytics über Kakaopodden zurückgegriffen und deaktivierten Bit-Code für jetzt.

Hoffentlich wird eine zukünftige Kakaofrucht-Version es unterstützen.

2

Schließen Xcode, den Ordner umbenennen. Dann erstellen Sie einen neuen Ordner mit dem vorherigen Namen. Führen Sie das Projekt aus, beenden 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 mit Bugs für das nächste SDK.

0

Ich hatte das gleiche Problem mit xcode 7.3. Dies liegt daran, dass einige meiner Dateien .h und .m zweimal hinzugefügt wurden.

0

Als ich "iOS Deployment Target" von "IOS 10.0" in "iOS 10.2" geändert habe, war das Problem für mich verschwunden.

Gebäude Einstellungen> Deployment> iOS Deployment Ziel

0

Dies geschieht in der Regel, wenn Cocoapods verwendet und baut aus dem xcproject, die nicht wissen, über die cocoapod Bibliotheken.

+0

Also hast du mehr Informationen, wie man die Cocoapod Bibliotheken verbindet? – SameerShaik

7

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

5

Das ist für mich gearbeitet:

Sie libPods.a Bibliothek aus dem verknüpften Frameworks und Bibliotheken Abschnitt des Ziels zu entfernen haben.

2

Stellen Sie sicher, dass die .xcworkspace Datei nicht die Projektdatei von Xcode-Projekt-Menü öffnen, wenn mit Hülsen arbeiten. Das sollte das Problem mit der Verknüpfung lösen.

1

Einige Male erschien, wenn Sie eine Konstante in der Headerdatei ohne statische Notation deklarieren. wie diese

const int k = 10; 

es sein sollte:

static const int k = 10; 
0

versuchen, jede Spur von cocoapods Schoten zu entfernen pod deintegrate dann Run pod install

0

Build-Einstellungen verwenden> Bitcode Aktivieren> No

+0

ein bisschen mehr Text wäre nett. Aber in der Tat, das sieht aus wie ein Duplikat von https://stackoverflow.com/a/35290286/2987273 (nur mit weniger Text) – Alexander

+0

danke für den Kommentar zuerst ... es ist das, was ich immer gefunden habe, wenn ich zu Demo arbeiten oder Beispiele, die von Git heruntergeladen wurden, um Hilfe zu erhalten. Das gleiche Problem, das ich mit meiner neuen google_map-App hatte. wie es am Simulator arbeitet, aber nicht am Gerät ... – Jasveer

Verwandte Themen