"Команда 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 в то время.
Ответы
Ответ 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 будет поддерживать ее.
Ответ 9
У вас есть другой вариант... установить Google Analytics без использования CocoaPods:
https://developers.google.com/analytics/devguides/collection/ios/v3/sdk-download
Ответ 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
Настройки сборки > Включить биткод > Нет