2015-07-13 5 views
83

Xcode 7 Beta 3 nur einige "zusätzliche Komponenten" installiert (jetzt Version 7.0 beta 3 (7A152u)), und jetzt einen Compiler-Fehler Ich erhalte:Google Analytics libAdIdAccess.a enthält keine Bitcode

ld: '/<abbreviated>/Vendor/Analytics/GoogleAnalytics/libAdIdAccess.a(TAGActualAdIdAccess.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 armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Dieser Google Code post ist die einzige Erwähnung, die ich für GA und Bitcode gefunden habe.

Es wäre nett, wenn ich es nur für diese Bibliothek deaktivieren könnte, anstatt Bitcode vollständig zu deaktivieren. Ist das möglich?

Diese answer bietet eine Umgehung für Bitcode standardmäßig aktiviert ist, und dies kann letztlich eine Täuschung dieser allgemeineren Frage sein.

+3

Ich vermute, dass Google aktualisiert ihre öffentliche Quelle & Cocoapods wenn Xcode 7 Finale geht: Aus den folgenden Links können Sie die Google-Api hinzufügen. –

+2

Das ist fair - in der Zwischenzeit deaktiviere ich Bitcode standardmäßig, wie ich in meiner Frage – bdalziel

+3

angedeutet habe. Mit dem Xcode 7.0 GM Seed schlägt es immer noch fehl, aber ich habe noch kein GA-Update gesehen. – DiscDev

Antwort

76

Update:

Gute Nachrichten jeder!

Google Analytics unterstützt jetzt Bitcode mit ihrer Version 3.14. Sie können es aus ihren Downloadquellen beziehen, es ist jedoch noch nicht auf Cocoapods aufgelistet.

Google Analytics SDK Download

Change Log

Original:

muss Google ihre Analytics Library SDK in einen Bitcode kompilieren. Aufgrund der bisherigen Erfahrung mit der Aktualisierung der Bibliotheken von Google auf 64-Bit dauerte es jedoch mehr als ein halbes Jahr.

Mein Rat ist, wenn Sie nicht watchOS unterstützen wir es einfach abwarten kann aus, bekam zu

  1. Build-Einstellungen

  2. Bitcode aktivieren

  3. Set mit Keine

Wenn Sie watchOS unterstützen, verwenden Sie eine andere Analyse t Ool für jetzt.

Zusätzliche Informationen:

Es spricht Entwickler darüber auf einem Google-Forum hier: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY

Facebook- und Fabric.io (Crashlytics, TwitterKit) bereits verwenden Bitcode aktualisiert, so dass es technisch sollte nicht zu schwer für Google sein, dem Beispiel zu folgen. Ich glaube, diese Art von Holdback ist Politik. Diejenigen, die am meisten verlieren, sind unsere Benutzer.

+5

Warum sie das tun, unterstützen entweder iOS nicht oder aktualisieren Sie Ihre Tools für die neue Version. Wir haben jetzt schon lange Beta und es wird in einer Woche oder so veröffentlicht werden – MKoosej

+0

Yup, frustrierend, nicht wahr? Ich habe die gleichen Fragen gestellt, als es den 64-Bit-Übergang gab. –

+0

Danke für die zusätzlichen Informationen insbesondere @DavidWong, und die allgemeine Antwort: http://Stackoverflow.com/a/30856364/822164 – bdalziel

4

Willkommen zurück zu 2013, wie @ David-Wong erwähnt, dauerte es ein Jahr für Google, um Arm64 zu unterstützen. Immer wenn Apple eine Änderung oder Anforderung an die Toolchain ankündigt, benötigt das Google ios SDK-Team Jahre, um seine statische Lib zu aktualisieren. Um Ihre Erwartungen zu erfüllen, haben Sie erst kürzlich bestätigt, dass die Bitcode-Unterstützung ein Problem mit "hoher Priorität" ist, obwohl App Slicing/Bitcode am 8. Juni 2015 angekündigt wurde. Wenn Sie GA in Ihrem Hauptziel verwenden, wird GA Sie davon abhalten den extrem wertvollen Nutzen von Architektur-Slicing zu nutzen.

Deaktivieren von Bitcode ist keine Umgehung, es deaktiviert nur Bitcode-Unterstützung. Hoffentlich sieht jemand, der GA leitet, dies und beschließt, IOS zu einem erstklassigen Bürger zu machen.

2

Google hat die Google Analytics und Google Tag Manager-SDKs (Version 3.14) zur Unterstützung von Bitcode aktualisiert, sodass Sie die Bibliotheken aktualisieren und Ihre App mithilfe des Kontrollkästchens "Enable Bitcode - Yes" kompilieren können.

Download page

Direct link

+1

Es sollte beachtet werden, dass bei Verwendung eines Top-Level-Pods wie "Google/Analytics" der Bitcode selbst mit 3.14 nicht funktioniert. Sie müssen stattdessen den 'GoogleAnalytics'-Pod verwenden. – Cristik

1

Wenn Sie cocoapods verwenden, können Sie diese am Ende des Podfile hinzufügen:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
     target.build_configurations.each do |config| 
      config.build_settings['ENABLE_BITCODE'] = 'NO' 
     end 
    end 
end 

Dies wird alle Schoten Rekursion durch und die ENABLE_BITCODE abgrenzen . Natürlich können Sie nicht für die Uhr/Apple TV kompilieren (wie sie es bei einigen Versionen benötigen).

2

Aktualisieren Sie Ihre GoogleAnalytics SDK mit Pod.

  1. Terminal öffnen
  2. Gehen Sie zu Ihrem Projektverzeichnis
  3. pod init
  4. Öffnen Sie die Pod-Datei in Ihrem Projektverzeichnis erstellt
  5. Schreiben Sie die folgenden Zeilen

    platform :ios, '10.0' 
    
    target “GoogleAnalyticsTestApp” do 
        pod 'GoogleAnalytics' 
        pod 'GoogleIDFASupport' 
    end 
    

Dies wird den Fehler beheben oder.

1. http://cocoapods.org/pods/GoogleAnalytics

2. http://developers.google.com/ios/guides/cocoapods

+0

[https: // Kokospalmen.org/pods/GoogleAnalytics] [https://developers.google.com/ios/guides/cocoapods] Über diesen Link können Sie beliebige Google APIs für iOS hinzufügen – mumu