Подтвердить что ты не робот

"Команда Linker не удалась с кодом выхода 1" при использовании Google Analytics через CocoaPods

Я пытаюсь добавить Google Analytics в приложение iOS, написанное в Swift. Я следил за руководством, которое добавляет рамки через CocoaPods и добавляет заголовок моста, но я все еще получаю:

Linker command failed with exit code 1

Мой podfile имеет use_frameworks! поэтому мне интересно, не связано ли это с этим... нет дополнительной информации о сайте Google Analytics из того, что я вижу.

EDIT: Я заметил, что после просмотра полного сообщения об ошибке отображается следующее:

ld: '/Users/simon/Programming/VenueNow/Pods/GoogleUtilities/Libraries/libGTM_NSData+zlib.a(GTMNSData+zlib.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

И поиск этой проблемы приводит к тому, что Google обновил поддержку битового кода, но не обновил фреймворк cocoa в то время.

4b9b3361

Ответ 1

У меня была такая же проблема. К счастью, вы можете использовать Google Analytics с включенным BitCode, но это немного запутывает из-за того, как Google установил поддержку CocoaPods.

На самом деле есть 2 CocoaPods, которые вы можете использовать:

  • "Google/Аналитика
  • 'GoogleAnalytics'

Первый - это "последний", но он привязан к более крупным Google-модулям, поэтому он не поддерживает биткод. Второй - только для Google Analytics и поддерживает BitCode. Однако, поскольку в последнем нет дополнительных модулей Google, некоторые инструкции по настройке неверны.

Вам нужно использовать метод настройки аналитики v2:

// Inside AppDelegate:

// Optional: automatically send uncaught exceptions to Google Analytics.
GAI.sharedInstance().trackUncaughtExceptions = true

// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
GAI.sharedInstance().dispatchInterval = 20

// Create tracker instance.
let tracker = GAI.sharedInstance().trackerWithTrackingId("XX-XXXXXXXX-Y")

Остальная часть аналитики Google api вы можете использовать документацию v3 (вам не нужно использовать v2).

Кокапопорт "Google/Analytics" на момент написания этой статьи по-прежнему не поддерживает BitCode. Смотрите здесь

Ответ 2

Перейдите к настройкам сборки и переключите целевые настройки на ENABLE_BITCODE = YES.

Ответ 3

У этой проблемы, но она не была связана с настройкой битового кода. Я каким-то образом оказался с дублирующимися файлами фреймворков в папке Frameworks моего проекта XCode. Я удалил все файлы фреймворков, которые были красными (и дублирующими). Это решило ошибку "Apple Mach O, Linker Command с ошибкой кода выхода 1".

Ответ 4

Это сработало для меня:

вам нужно удалить библиотеку libPods.a из Linked Frameworks и Секция библиотек цели.

Ответ 5

Закройте Xcode, переименуйте папку. Затем создайте новую папку с предыдущим именем. Запустите проект, остановите проект. Удалите новую папку, переименуйте старую папку и запустите ее.

Мой симулятор iPad iPad затронут этой проблемой. Это что-то, что меня огорчает, так много тяжелой работы... надеюсь, Google работает через ошибки для следующего SDK.

Ответ 6

Убедитесь, что вы открываете файл .xcworkspace не файл проекта из меню xCode Project при работе с контейнерами. Это должно решить проблему с привязкой.

Ответ 7

Несколько раз появилось, если вы объявляете константу в файле заголовка без статической записи. как это

const int k = 10;

это должно быть:

static const int k = 10;

Ответ 8

Я прибегал к добавлению Google Analytics через cocoa pods снова и отключил бит-код на данный момент.

Надеемся, что будущая версия cocoa pods будет поддерживать ее.

Ответ 10

У меня была такая же проблема с xcode 7.3. Это связано с тем, что некоторые из моих файлов .h и .m были добавлены дважды.

Ответ 11

Когда я изменил "Цель развертывания iOS" с "IOS 10.0" на текущий (мой телефон) "iOS 10.2", проблема исчезла для меня.

Настройки здания > Развертывание > Цель развертывания iOS

Ответ 12

Это обычно происходит при использовании Cocoapods, и вы строите из xcproject, который не знает о библиотеках cocoapod.

Ответ 13

Попробуйте удалить любые следы контейнеров cocoapods, используя pod deintegrate, затем Запустите pod install

Ответ 14

Настройки сборки > Включить биткод > Нет