Google Analytics libAdIdAccess.a nie zawiera kodu bitowego

83

Xcode 7 beta 3 właśnie zainstalował kilka „dodatkowych składników” (obecnie wersja 7.0 beta 3 (7A152u)), a teraz pojawia się błąd kompilatora:

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)

Ten post Google Code to jedyna wzmianka, jaką znalazłem dla GA i bitcode.

Byłoby miło, gdybym mógł wyłączyć to tylko dla tej biblioteki, zamiast całkowicie wyłączać bitcode. Czy to jest możliwe?

Ta odpowiedź zapewnia obejście problemu domyślnie włączonego kodu bitowego, co ostatecznie może być kopią tego bardziej ogólnego pytania.

bdalziel
źródło
3
Podejrzewam, że Google zaktualizuje swoje publiczne źródło i Cocoapods, gdy Xcode 7 stanie się ostateczny.
Michael Dautermann
2
To sprawiedliwe - tymczasem domyślnie wyłączam bitcode, jak wskazałem w moim pytaniu
bdalziel
3
Z ziarnem Xcode 7.0 GM nadal nie działa, ale nie widziałem jeszcze aktualizacji GA.
DiscDev,
Z doświadczenia
wynika
1
@MichaelDautermann XCode7 i iOS9 są tutaj i nie ma nic nowego od Google
Kubba

Odpowiedzi:

76

Aktualizacja:

Dobre wieści wszyscy!

Google Analytics obsługuje teraz Bitcode w wersji 3.14. Możesz go pobrać z ich źródeł pobierania, jednak nie jest jeszcze wymieniony na Cocoapods.

Pobieranie pakietu SDK Google Analytics

Dziennik zmian

Oryginalny:

Google musi skompilować swój pakiet analityczny SDK do biblioteki kodu bitowego. Jednak z wcześniejszych doświadczeń z Google aktualizowanie swoich bibliotek do 64-bitowych iirc zajęło to ponad pół roku.

Moja rada jest taka, że ​​jeśli nie obsługujesz systemu watchOS, możemy po prostu poczekać

  1. Ustawienia kompilacji

  2. Włącz Bitcode

  3. Ustaw na Nie

Jeśli obsługujesz system watchOS, na razie użyj innego narzędzia analitycznego.

Informacje dodatkowe:

Deweloperzy rozmawiają o tym na forum Google tutaj: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY

Facebook i Fabric.io (Crashlytics, TwitterKit) zostały już zaktualizowane, aby używać bitcode, więc z technicznego punktu widzenia Google nie powinno być zbyt trudne. Uważam, że ten rodzaj powstrzymywania to polityka. Ci, którzy mają najwięcej do stracenia, to nasi użytkownicy.

David Wong
źródło
5
Dlaczego to robią, albo nie obsługują iOS, albo uaktualnij swoje narzędzia do nowej wersji. Beta mamy już od dawna i ma się ukazać za jakiś tydzień
MKoosej
Tak, frustrujące, prawda? Zadałem te same pytania, gdy było przejście na 64-bitowe.
David Wong,
Dziękuję za dodatkowe informacje, w szczególności @DavidWong, i powtórzenie typowej odpowiedzi: stackoverflow.com/a/30856364/822164
bdalziel
2
Korzystanie z wielu pakietów SDK innych firm na iOS. Google jest jedynym, który wciąż nie zaktualizował swoich. Upuszczam Google SDK i prawdopodobnie nie zamierzam go ponownie dodawać. Za dużo kłopotów.
Ville Laurikari,
3
Należy zauważyć, że jeśli używasz kapsuły najwyższego poziomu, na przykład Google/Analytics, bitcode nie będzie działać, nawet z 3.14. Zamiast tego musisz użyć GoogleAnalyticskapsuły.
Cristik
4

Witamy z powrotem w 2013 roku, jak wspomniał @ david-wong, Google potrzebowało roku, aby wesprzeć arm64. Za każdym razem, gdy Apple ogłasza zmianę lub wymóg w łańcuchu narzędzi, zespół Google ios SDK potrzebuje lat, aby zaktualizować swoją statyczną bibliotekę. Aby ustawić swoje oczekiwania, niedawno przyznali, że obsługa kodu bitowego jest kwestią o „wysokim priorytecie”, mimo że dzielenie aplikacji / bitcode zostało ogłoszone 8 czerwca 2015 r. Jeśli używasz GA jako głównego celu, GA uniemożliwi korzystania z niezwykle cennych korzyści płynących z wycinania architektury.

Wyłączenie bitcode nie jest obejściem, to tylko wyłączenie obsługi bitcode. Miejmy nadzieję, że ktoś zarządzający AH widzi to i decyduje się uczynić iOS obywatelem pierwszej klasy.

Ryan Romanchuk
źródło
2

Firma Google właśnie zaktualizowała pakiety SDK Google Analytics i Menedżera tagów Google (wersja 3.14), aby obsługiwały Bitcode, dzięki czemu można zaktualizować biblioteki i skompilować aplikację za pomocą flagi „Włącz Bitcode - Tak”.

Pobierz stronę

Link bezpośredni

Igor Akimov
źródło
1
Należy zauważyć, że jeśli używasz kapsuły najwyższego poziomu, na przykład Google/Analytics, bitcode nie będzie działać, nawet z 3.14. Zamiast tego musisz użyć GoogleAnalyticskapsuły.
Cristik
2

Uaktualnij swój zestaw SDK GoogleAnalytics za pomocą poda.

  1. Otwórz terminal
  2. Przejdź do katalogu swojego projektu
  3. pod init
  4. Otwórz plik pod utworzony w katalogu projektu
  5. Napisz następujące wiersze

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

To rozwiąże problem. Korzystając z poniższych linków, możesz dodać API Google:

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

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

Rubaiyat Jahan Mumu
źródło
[ cocoapods.org/pods/GoogleAnalytics] [ developers.google.com/ios/guides/cocoapods] Za pomocą tego linku możesz dodać dowolne interfejsy API Google dla iOS
Rubaiyat Jahan Mumu
1

Jeśli używasz cocoapods, możesz dodać to na końcu pliku Podfile:

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

Spowoduje to powtórzenie się przez wszystkie pody i oznaczenie ENABLE_BITCODE wyłączone. Oczywiście nie będzie można kompilować dla zegarka / Apple TV (ponieważ wymagają tego w niektórych wersjach).

kindaian
źródło