如何配置指定SPM库仅在特定构建配置下嵌入 实现自动化提审
解决方案
优先推荐原生配置方案,无需额外脚本,一次配置永久生效:
方案1:Xcode Target直接指定库的生效配置
- 打开对应Target的设置页面,进入Frameworks, Libraries, and Embedded Content栏目
- 找到RxTest等仅需在Debug下使用的库,点击右侧的Status/Embed列下拉选项
- 选择仅勾选Debug配置,取消Release等生产构建配置的勾选即可
如果你的项目是通过Package.swift声明SPM依赖,可直接在依赖配置中加条件限制:
.target( name: "你的主业务目标名", dependencies: [ // 仅Debug配置下引入RxTest .product(name: "RxTest", package: "RxSwift", condition: .when(configuration: .debug)) ] )
方案2:构建阶段脚本自动移除
如果项目结构特殊无法用上述原生配置,可通过末尾构建脚本实现自动移除:
- 进入Target的Build Phases页面,点击左上角+号新增Run Script Phase,将该阶段拖拽到所有构建阶段的最末尾
- 填入以下脚本,按需修改要排除的库名列表即可:
# 配置需要从Release包中排除的库 EXCLUDED_LIBRARIES=("RxTest" "RxBlocking") if [ "${CONFIGURATION}" = "Release" ]; then for LIB_NAME in "${EXCLUDED_LIBRARIES[@]}"; do # 移除动态库 rm -rf "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/${LIB_NAME}.framework" # 移除静态库 rm -f "${BUILT_PRODUCTS_DIR}/lib${LIB_NAME}.a" done fi
两种方案都可以完全避免手动修改配置的操作,适配CI/CD自动化上传流程。
内容的提问来源于stack exchange,提问作者peakingcube
相关产品推荐
相关产品推荐

