2015-07-26 11 views
17

Właśnie ściągnąłem Xcode 7 beta 4 i staram się budować mój Swift 2.0 wniosku, ale otrzymuję następujący błąd, którego nie mogę wymyślić rozwiązanie:Xcode Wydanie 7 łącznikiem z 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)

Czy ktoś wie, jak rozwiązać ten problem?

+0

Jakiej wersji struktury GoogleMaps używasz? –

+0

Zainstalowałem go za pomocą kakao i powiedział, że zainstalował google maps 1.10.1 – KPath001

+1

To dziwne, stworzyłem nowy projekt w Xcode 7 beta 4 i zainstalowałem google maps 1.10.1 przez strąki kakao. Wszystko dziala. Poradzę ci, aby utworzyć nowy projekt i zmigrować pliki źródłowe z bieżącego projektu. Spróbuj również zmienić wartość flagi ENABLE_BITCODE w ustawieniach projektu. W moim przypadku działa z dowolną wartością (true, false) tej flagi. –

Odpowiedz

20

Zmieniłem ENABLE_BITCODE Flaga na No i prawidłowo skompilowany dzięki @Visput na odpowiedź

+3

Czy ENABLE_BITCODE nie jest obowiązkowe w przypadku wdrożeń w sklepie z aplikacjami? Mam BTW mając ten sam problem z tym GMSBillingPointRecorder.o nie zawiera bitcode – decades

+0

@decades: nie dla iOS – user102008

+0

jeśli masz Apple Watch rozszerzenie, Bitcode jest obowiązkowe –

22

Setting ENABLE_BITCODE flagę NO rozwiązuje ten problem.

Dla tych, którzy zastanawiają się, czy można go bezpiecznie wyłączyć. Tak, jest.

Zgodnie Jabłko 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 jest częścią nowego wysiłku dla Apple App przerzedzenie. W chwili pisania tego tekstu jest ono opcjonalne, ale może być później wymagane. Myślę, że Apple daje społecznościom frameworków/bibliotek czas na dostosowanie się.

Edytuj: W aplikacji Xcode 7 przesłać aplikację do połączenia z iTunes w stanie pośrednim o nazwie Bitcode. Gdy użytkownicy pobiorą twoją aplikację, App Store automatycznie utworzy zoptymalizowaną wersję twojej aplikacji (tj. 64-bitową, jeśli jest taka potrzeba), aby pasowała do urządzenia, z którego korzysta użytkownik.

Na razie możemy wyłączyć bitcode i poczekać na aktualizację Google Maps SDK.

UPDATE

SDK 1.11.0 - obsługuje teraz Bitcode

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

Zasoby:

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

Problem dla GoogleMaps API jest śledzone tutaj: https://code.google.com/p/gmaps-api-issues/issues/detail?id=8219, zagłosuj na nią, jeśli jej potrzebujesz. –

5

Wystarczy być jasne, gdzie wyłączyć bitcode: Target -> Budowanie Ustawienia -> Włącz Bitcode -> No

Disable Bitcode

GIF uprzejmości @stevechen

0

Google rozwiązał ten problem w wersji SDK w wersji 1.11.0 - grudzień 2015. Zobacz: release notes:

Bitcode jest teraz włączone ed w pliku binarnym SDK dla wszystkich architektur urządzeń. (Issue 8219).

Powiązane problemy