我们正在尝试使用 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
欢迎任何想法,或者也许这是不可能的?