В Google Analytics libAdIdAccess.a не содержится биткод

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 post - единственное упоминание, которое я нашел для GA и bitcode.

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

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

Ответ 1

Update:

Хорошие новости!

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

Загрузка SDK Google Analytics

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

Оригинал:

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

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

  • Настройки сборки

  • Включить биткод

  • Установите значение Нет

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

Обновите свой sdk GoogleAnalytics, используя pod.

  • Открыть терминал
  • Перейдите в каталог проекта
  • pod init
  • Откройте файл pod, созданный в каталоге проекта
  • Напишите следующие строки

    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

Ответ 5

Если вы используете cocoapods, вы можете добавить это в конец подфайла:

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. Естественно, вы не сможете скомпилировать часы /apple tv (так как они требуются в некоторых версиях).