Битовый код - это абстрактная кодировка приложения, которая может использоваться для его повторной компиляции различными способами с учетом набора инструкций.Вы можете проверить, является ли ваш двоичный файл совместимым с битовым кодом, выполнив:
otool -l (my .o or .a file) | grep __LLVM
.
При обычной сборке Xcode добавляет флаг сборки -fembed-bitcode-marker
к любому вызову clang.
Для добавления -fembed-bitcode
: выберите проект Настройки сборки -> Другие флаги C, установите Debug на -fembed-bitcode-marker
и Release на -fembed-bitcode
, это создаст вашу библиотеку с битовым кодом.
BITCODE_GENERATION_MODE
Если вы установите BITCODE_GENERATION_MODE=bitcode
в своем пользовательском параметре, даже на этапе сборки файлы будут скомпилированы с использованием флага -fembed-bitcode
.
И,если вы установите BITCODE_GENERATION_MODE=marker
, файлы будут скомпилированы с использованием флага -fembed-bitcode-marker
независимо от фазы действия.
Итак, если вы хотите включить битовый код для каждого действия (сборка и архивирование),Лучший способ сделать это - использовать параметр BITCODE_GENERATION_MODE
, который можно сделать вручную или с помощью сценария.
Ручной
В настройках сборки нажмите значок +вверху, чтобы добавить пользовательский параметр сборки с именем BITCODE_GENERATION_MODE
и установить Debug на marker
, Release на bitcode
.
Редактировать схему как Release Затем свяжите файл library.a иполучить путь сборки получить библиотеку форму Папка выпуска
Сценарий
xcodebuild BITCODE_GENERATION_MODE = битовый код OTHER_CFLAGS = "- fembed-bitcode" -target "$ {PROJECT_NAME}" ONLY_ACTIVE_ARCH = NO -configuration $ {CONFIGURATION} -sdk iphoneos BUILD_DIR_ROOK_RD_RD_RD_RD_RD_RT_RT_RT_RT_RT_RTTT $ {$ BUILD_DIR_RT_RT_RT_RTT_RT_RT_RT_RT_TRTT $чистая сборка