Я сталкиваюсь с ошибкой сборки, когда устанавливаю для параметра «Включить битовый код» значение «ДА» в настройках сборки проекта, над которым я сейчас работаю. Ошибка:
ld: пакет битового кода не может быть сгенерирован, потому что '/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECT.build/DAMEPbujects/iphoneNormos/DAMEPBug-JiphoneNorms/ /main.o 'был построен без полного битового кода. Все объектные файлы и библиотеки для битового кода должны быть сгенерированы из архива Xcode или установочного файла сборки '/Users/nick/Library/Developer/Xcode/DerivedData/PROJECTNAME-esksqmlmtpqewpbktcqeqloackeu/Build/Intermediates.noindex/PROJECTOSPROJECT. .build / Objects-normal / arm64 / main.o 'для архитектуры arm64 clang: error: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов)
(Я отредактировал название проекта на PROJECTNAME, а вариант - на PROJECT, чтобы разместить здесь.)
Сначала я подумал, что это может быть связано с одной из зависимостей, которые этот проект использует через Cocoapods, но у всех них для параметра Enable Bitcode установлено значение YES, и я ожидал увидеть имя библиотеки-нарушителя в сообщении об ошибке, если так и было. В проекте не используются никакие фреймворки, кроме тех, что включены в Cocoapods (и фреймворки Apple).
Я попытался удалить производные данные, перезапустить Xcode, а также очистить папку сборки, но ошибка не исчезла.
Я также пробовал решение '-fembed-bitcode-marker', как предлагается для аналогичной проблемы здесь:
Но я создаю не статическую библиотеку, а приложение, поэтому неудивительно, что это не имело никакого значения.
Проект довольно большой и разрабатывался с 2012 года, поэтому включает в себя Objective-C и Swift. В настоящее время он имеет iOS 8 в качестве цели развертывания и 11.2 в качестве базового SDK. Раньше Bitcode никогда не был включен ни в одной из версий для разработки или производства. У нас включен Bitcode в похожих, но более поздних проектах. В настоящее время мы используем Xcode 9.2 (9C40b).
Я знаю, что могу установить для параметра «Включить битовый код» значение «НЕТ» для настроек сборки проекта, чтобы «исправить» ошибку, но я бы предпочел, чтобы битовый код был включен для повторной оптимизации, которую Apple может выполнить после загрузки двоичного файла, как указано здесь: Apple Docs - Оптимизация приложений
Мне не хватает флага в настройках сборки, который исправляет эту ошибку или, возможно, что-то еще? Любой совет очень ценится!
Большое спасибо, Ник