Xcode使用SPM时查找DerivedData包路径的等效SOURCE_ROOT环境变量
解决方案
Xcode 11及以上版本内置了专门对应 Swift Package Manager 依赖根目录的环境变量SOURCE_PACKAGES_PATH,无需手动配置,所有开发者环境开箱可用。
该变量直接映射到当前项目DerivedData下的SourcePackages目录,也就是你给出的示例路径中的/Users/username/Library/Developer/Xcode/DerivedData/project-name/SourcePackages段。
等效的运行脚本命令
替换你之前CocoaPods的命令即可:
bash "$SOURCE_PACKAGES_PATH/checkouts/myFramework/script.sh"
补充说明
- 该变量是Xcode执行构建阶段脚本时自动注入的,不需要手动添加任何本地环境配置,兼容性覆盖所有支持SPM的Xcode版本
- 若需要验证路径正确性,可在构建脚本中加入以下代码,构建后在Xcode构建日志中查看输出结果:
echo "SPM依赖根目录:$SOURCE_PACKAGES_PATH"
- 如果你使用本地路径开发的SPM依赖,不需要走checkouts目录的话,也可以通过
$PROJECT_DIR变量拼接本地依赖的相对路径使用。
内容的提问来源于stack exchange,提问作者Blueprint
相关产品推荐
相关产品推荐

