2015-07-26 8 views
17

ich nur Xcode 7 Beta 4 heruntergeladen und ich versuche, meine Swift 2.0-Anwendung zu bauen, aber ich erhalte die folgende Fehlermeldung, die ich nicht die Lösung herausfinden kann, zu:Xcode 7 Linker Problem mit Google Maps SDK

ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers ld: 'path/Pods/GoogleMaps/Frameworks/GoogleMaps.framework/GoogleMaps(GMSBillingPointRecorder.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 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Kann jemand dieses Problem beheben?

+0

Welche Version von GoogleMaps Framework verwenden Sie? –

+0

Ich installierte es mit Kakao pod und es sagt, dass es Google Maps 1.10.1 installiert – KPath001

+1

Es ist seltsam, ich habe ein neues Projekt in Xcode 7 Beta 4 erstellt und Google Maps 1.10 installiert.1 von Kakaoschoten. Alles funktioniert gut. Ich rate Ihnen, ein neues Projekt zu erstellen und Ihre Quelldateien vom aktuellen Projekt zu migrieren. Versuchen Sie auch, den Wert des ENABLE_BITCODE-Flags in Ihren Projekteinstellungen zu ändern. In meinem Fall funktioniert es mit jedem Wert (wahr, falsch) dieser Flagge. –

Antwort

20

änderte ich die ENABLE_BITCODE Flagge auf Nein und richtig Dank @Visput für die Antwort

+3

Ist ENABLE_BITCODE nicht zwingend für App Store-Bereitstellungen erforderlich? Ich habe BTW mit dem gleichen Problem mit GMSBillingPointRecorder.o enthält keinen Bitcode – decades

+0

@decades: nicht für iOS – user102008

+0

Wenn Sie Apple Watch Erweiterung haben, ist Bitcode obligatorisch –

22

Einstellung ENABLE_BITCODE Flag NO löst das Problem zusammengestellt.

Für diejenigen, die sich fragen, ob es sicher ist, es zu deaktivieren. Ja ist es.

Per Apple-Doc

Bitcode (iOS, watchOS)

Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

Xcode hides symbols generated during build time by default, so they are not readable by Apple. Only if you choose to include symbols when uploading your app to iTunes Connect would the symbols be sent to Apple. You must include symbols to receive crash reports from Apple.

Note: For iOS apps, bitcode is the default, but optional. If you provide bitcode, all apps and frameworks in the app bundle need to include bitcode. For watchOS apps, bitcode is required.

Bitcode ist Teil der neuen Bemühungen von Apple für App Verdünnung. Zum Zeitpunkt des Schreibens ist es optional, könnte aber möglicherweise später benötigt werden. Ich denke, Apple gibt den Frameworks/libs-Communities Zeit, sich anzupassen.

Bearbeiten: In Xcode 7 laden Sie Ihre App zu iTunes verbinden in einem Zwischenzustand namens Bitcode. Wenn Nutzer Ihre App herunterladen, erstellt der App Store automatisch eine optimierte Version Ihrer App (d. H. 64-Bit, falls erforderlich), damit sie mit dem Gerät übereinstimmt, das der Nutzer verwendet.

Jetzt können wir den Bitcode deaktivieren und auf das Google Maps SDK-Update warten.

UPDATE

SDK 1.11.0 - unterstützt jetzt Bitcode

https://developers.google.com/maps/documentation/ios-sdk/releases?hl=en

Ressourcen:

Impact of Xcode build options "Enable bitcode" Yes/No

https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

https://www.hackingwithswift.com/ios9

+0

Das Problem für GoogleMaps API wird hier verfolgt: https://code.google.com/p/gmaps-api-issues/issues/detail?id=8219, stimme dafür ab, wenn du es brauchst. –

5

Nur klar zu sein, wo Bitcode deaktivieren: Target -> Build-Einstellungen -> Aktivieren Bitcode -> Kein

Disable Bitcode

GIF-Bild ist mit freundlicher Genehmigung von @stevechen

0

Google hat dieses Problem in SDK Version 1.11.0 - Dezember 2015 behoben. Siehe release notes:

Bitcode ist jetzt enthalten in der SDK-Binärdatei für alle Gerätearchitekturen. (Issue 8219).