Google Analytics libAdIdAccess.a не содержит битового кода

83

Xcode 7 beta 3 только что установил некоторые «дополнительные компоненты» (теперь версия 7.0 beta 3 (7A152u)), и теперь я получаю сообщение об ошибке компилятора:

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)

Это Google Code пост является лишь , я нашел для ГА и битового кода.

Было бы неплохо, если бы я мог отключить его только для этой библиотеки, а не полностью отключать битовый код. Это возможно?

Этот ответ предоставляет обходной путь для включения битового кода по умолчанию, и в конечном итоге это может быть обманом этого более общего вопроса.

Bdalziel
источник
3
Я подозреваю, что Google обновит свой общедоступный источник и Cocoapods, когда Xcode 7 выйдет окончательно.
Майкл Даутерманн,
2
Это честно - пока что я по умолчанию отключаю битовый код, как я указал в своем вопросе
bdalziel
3
С семенами Xcode 7.0 GM он по-прежнему не работает, но я еще не видел обновления GA.
DiscDev
По опыту, GA может занять несколько недель ...
Винциус
1
@MichaelDautermann XCode7 и iOS9 уже здесь, и от Google нет ничего нового
Кубба

Ответы:

76

Обновить:

Всем хорошие новости!

Google Analytics теперь поддерживает Bitcode в версии 3.14. Вы можете получить его из их источников загрузки, однако его еще нет в списке на Cocoapods.

Загрузить SDK Google Analytics

Журнал изменений

Оригинал:

Google необходимо скомпилировать свой SDK аналитики в библиотеку битового кода. Однако, судя по предыдущему опыту обновления библиотек Google до 64-битных версий, iirc потребовалось более полугода.

Мой совет: если вы не поддерживаете watchOS, мы можем просто подождать, нужно

  1. Настройки сборки

  2. Включить битовый код

  3. Установите на Нет

Если вы поддерживаете watchOS, используйте пока другой инструмент аналитики.

Дополнительная информация:

Об этом говорят разработчики на форуме Google здесь: https://groups.google.com/forum/#!topic/ga-mobile-app-analytics/d6ML4BKBBeY

Facebook и Fabric.io (Crashlytics, TwitterKit) уже обновили для использования битового кода, поэтому технически Google не должно быть слишком сложно последовать их примеру. Я считаю, что это сдерживание политики. Больше всего теряют наши пользователи.

Дэвид Вонг
источник
5
Почему они это делают, либо не поддерживают iOS, либо обновляют свои инструменты до новой версии. У нас есть бета-версия уже давно, и она будет выпущена через неделю или около того
MKoosej
Ага, неприятно, не правда ли? Я задавал те же вопросы, когда был 64-битный переход.
Дэвид Вонг
Спасибо за дополнительную информацию, в частности за @DavidWong, и повторение общего ответа: stackoverflow.com/a/30856364/822164
bdalziel
2
Использование ряда сторонних SDK для iOS. Google - единственный, кто еще не обновил свой. Я отказываюсь от Google SDK и, вероятно, не собираюсь его повторно добавлять. Слишком много хлопот.
Вилле Лаурикари,
3
Следует отметить, что если вы используете модуль верхнего уровня, например Google/Analytics, то битовый код не будет работать даже с 3.14. GoogleAnalyticsВместо этого вам нужно использовать стручок.
Cristik
4

Добро пожаловать в 2013 год, как сказал @david-wong, Google потребовал год, чтобы поддержать arm64. Всякий раз, когда Apple объявляет об изменении или требованиях к инструментальной цепочке, команде Google ios SDK требуются годы, чтобы обновить свою статическую библиотеку. Просто чтобы оправдать ваши ожидания, они недавно признали, что поддержка битового кода является «высокоприоритетной» проблемой, хотя 8 июня 2015 года было объявлено о нарезке приложений / битовом коде. Если вы используете GA в своей основной цели, GA помешает вам от использования чрезвычайно ценного преимущества нарезки архитектуры.

Отключение битового кода - это не обходной путь, это просто отключение поддержки битового кода. Надеюсь, кто-то, управляющий GA, увидит это и решит сделать iOS первоклассным гражданином.

Райан Романчук
источник
2

Google только что обновил SDK Google Analytics и Google Tag Manager (версия 3.14) для поддержки Bitcode, поэтому вы можете обновлять библиотеки и компилировать приложение, используя флаг «Enable Bitcode - Yes».

Страница загрузки

Прямая ссылка

Игорь Акимов
источник
1
Следует отметить, что если вы используете модуль верхнего уровня, например Google/Analytics, то битовый код не будет работать даже с 3.14. GoogleAnalyticsВместо этого вам нужно использовать стручок.
Cristik
2

Обновите SDK GoogleAnalytics с помощью pod.

  1. Открытый терминал
  2. Перейдите в каталог вашего проекта
  3. pod init
  4. Откройте файл модуля, созданный в каталоге вашего проекта.
  5. Напишите следующие строки

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

Это устранит ошибку. По следующим ссылкам вы можете добавить Google Api:

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

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

Рубайят Джахан Муму
источник
[ cocoapods.org/pods/GoogleAnalytics] [ developers.google.com/ios/guides/cocoapods] По этой ссылке вы можете добавить любые API Google для iOS
Рубайят Джахан Муму
1

Если вы используете cocoapods, вы можете добавить это в конец 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

Это будет проходить через все модули и пометить ENABLE_BITCODE отключенным. Естественно, вы не сможете скомпилировать для watch / apple tv (поскольку они требуют этого в некоторых версиях).

своего рода
источник