2015-07-26 19 views
17

Ho appena scaricato Xcode 7 beta 4 e sto cercando di costruire la mia domanda Swift 2.0 ma sto ottenendo il seguente errore che io non riesco a capire la soluzione:Xcode problema 7 linker con 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)

Qualcuno sa come risolvere questo problema?

+0

Quale versione del framework di GoogleMaps utilizzi? –

+0

L'ho installato utilizzando il pod cacao e dice che è installato google maps 1.10.1 – KPath001

+1

È strano, ho creato un nuovo progetto in Xcode 7 beta 4 e installato google maps 1.10.1 di baccelli di cacao. Tutto funziona bene Ti consiglierò di creare un nuovo progetto e di migrare i tuoi file sorgente dal progetto corrente. Prova anche a modificare il valore del flag ENABLE_BITCODE nelle impostazioni del progetto. Nel mio caso funziona con qualsiasi valore (vero, falso) di questa bandiera. –

risposta

20

ho cambiato la bandiera ENABLE_BITCODE su No e compilati correttamente grazie @Visput per la risposta

+3

Non è ENABLE_BITCODE obbligatorio per le distribuzioni di app store? Sono BTW con lo stesso problema con esso GMSBillingPointRecorder.o non contiene bitcode – decades

+0

@decades: non per iOS – user102008

+0

se hai estensione apple watch, il codice bit è obbligatorio –

22

Impostazione ENABLE_BITCODE bandiera per NO risolve il problema.

Per chi si chiede se sia sicuro disabilitarlo. Sì, lo è.

Come da Mela 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.

codice binario che fa parte del nuovo sforzo di Apple per App diradamento. Al momento della stesura di questo, è facoltativo, ma potrebbe essere richiesto in seguito. Penso che Apple stia dando alle comunità framework/libs il tempo di adattarsi.

Modifica: In Xcode 7 si carica l'applicazione su iTunes per connettersi in uno stato intermedio chiamato Bitcode. Quando gli utenti scaricano la tua app, l'App Store produrrà automaticamente una versione ottimizzata della tua app (ad esempio, 64-bit se necessario) per abbinare il dispositivo che l'utente sta utilizzando.

Per ora ciò che possiamo fare è disabilitare il bitcode e attendere l'aggiornamento dell'SDK di Google Maps.

UPDATE

SDK 1.11.0 - ora supporta codice binario che

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

Risorse:

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

Il problema per GoogleMaps api è tracciato qui: https://code.google.com/p/gmaps-api-issues/issues/detail?id=8219, vota se ne hai bisogno. –

5

Giusto per essere chiari dove disabilitare codice binario che: Target -> Crea Impostazioni -> Attiva codice binario che -> Nessun immagine GIF

Disable Bitcode

è per gentile concessione di @stevechen

0

Google ha risolto questo problema in SDK versione 1.11.0 - dicembre 2015. Vedi lo release notes:

Bitcode è ora incluso ed nel binario SDK per tutte le architetture dei dispositivi. (Issue 8219).

Problemi correlati