"Ошибка ipatool с исключением: # <CmdSpec::NonZeroExitException:" при архивировании с XCFramwork, включен Bitcode
Я не могу заархивировать ipa при выборе опции экспорта "Перестроить из битового кода", получаю следующую ошибку
ipatool failed with an exception: #<CmdSpec::NonZeroExitException: $ /Applications/Xcode.app/Contents/Developer/usr/bin/bitcode-build-tool
-v -t /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
-
Примечание:- Я проверил, что все мои структуры зависимостей имеют формат.xcframework и поддерживают Bitcode.
Может ли кто-нибудь помочь мне здесь? Заранее спасибо.
2 ответа
У нас есть аналогичная проблема, которая описана здесь . Короче говоря, были включены инструменты LLVM, которые предотвращают обработку AppStore. Я написал целый блог о проблемах XCode 12 и BigSur с XCFramework .
Подводя итог, вот несколько обязательных шагов, чтобы убедиться, что при создании
XCFramework
для распространения:
- Использование архивных сборок ОБЯЗАТЕЛЬНО , релизной сборки недостаточно
-
BUILD_LIBRARY_FOR_DISTRIBUTION
должен быть установлен наYES
-
SKIP_INSTALL
должен быть установлен наNO
-
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO
чтобы отключить инструменты GCC и удалить их из двоичного файла -
CLANG_ENABLE_CODE_COVERAGE = NO
чтобы отключить инструменты покрытия кода из бинарного файла
Наличие всего вышеперечисленного помогло решить нашу проблему с подготовкой и распространением и, надеюсь, сэкономить вам время, если вы столкнулись с теми же проблемами, что и мы.
Получил точно такую же проблему,
ipatool failed with an exception: #<CmdSpec::NonZeroExitException:
$ /Applications/Xcode.app/Contents/Developer/usr/bin/python3...
......
Status: pid 52712 exit 1
Stdout:
SDK path: /Applications/Xcode.app/Contents/Developer/Platforms
/iPhoneOS.platform/Developer/SDKs/iPhoneOS15.2.sdk
Причина, по которой он был создан, заключалась в том, что у меня было
bitcode enabled
в
production target
но другие цели (
share-extension
,
debug
,
share-extension-debug
) а также
project level bitcode
был установлен на
No
.
Когда я включил все, это сработало для меня.
Обратите внимание, что все фреймворки и двоичные файлы, от которых я зависел, имели битовый код.