xcodebuild ACTIVE_COMPILATION_CONDITIONS не переопределяет ACTIVE_COMPILATION_CONDITIONS цели

Мы пытаемся использовать xcodebuild для создания наших фреймворков вместо использования кнопок ручного запуска Xcode IDE. Проблема в том, что в нашей структуре мы используем ACTIVE_COMPILATION_CONDITIONS, у которых есть несколько значений. Эти значения затем используются для проверки во время выполнения, интегрирована ли конкретная структура, например, проверка Sentry:

      #if SENTRY_AVAILABLE
    import Sentry
#endif

Проблема в том, что для некоторых сборок нам нужно переопределить настройки нашего проекта, в частности ACTIVE_COMPILATION_CONDITIONS. Однако после успешного выполнения следующего сценария Xcode по-прежнему не отменяет предоставленный нами ACTIVE_COMPILATION_CONDITIONS с определенным в проекте.

Сценарий:

      xcodebuild -workspace project.xcworkspace -scheme SDKNR1 ONLY_ACTIVE_ARCH=NO 
EXCLUDED_ARCHS=arm64 ACTIVE_COMPILATION_CONDITIONS=SENTRY_AVAILABLE -configuration 
release -derivedDataPath $PROJECT_DIR/../simulators/SDKNR1 -sdk iphonesimulator
ENABLE_BITCODE=YES BITCODE_GENERATION_MODE=bitcode OTHER_CFLAGS="-fembed-bitcode" clean build

Как видите, мы определяем ACTIVE_COMPILATION_CONDITIONS = SENTRY_AVAILABLE, однако он не переопределяет настройки целевого проекта (SDKNR1). Предположим, в SDKNR1 нет ACTIVE_COMPILATION_CONDITIONS. Мы ожидали, что команда xcodebuild переопределит целевое значение ACTIVE_COMPILATION_CONDITIONS и будет включать SENTRY_AVAILABLE

Приветствовал бы любые идеи, а может быть, это невозможно?

1 ответ

Правильный ключ настройки сборки - SWIFT_ACTIVE_COMPILATION_CONDITIONS.

Вы можете дважды проверить это, используя команду и убедившись, что ключ существует:

      xcodebuild -showBuildSettings <project/scheme/target/configuration flags>
Другие вопросы по тегам