在构建脚本的构建阶段更改Xcode BuildSettings环境变量是否可能?
整个想法如下: 我想发布一个带有单元测试的开源项目。 我的测试需要敏感数据,例如“登录”和“密码”,因此我不能硬编码它们。 我想通过进程环境传递登录信息,以便能够执行以下操作:
let login = ProcessInfo().environment["login"]!
我找到了一种方法,可以将构建设置环境中的变量传递给测试进程:选择“Tests”方案,进入环境变量并添加一个新值,名称为“login”,值为“$(login)”。 如果我在构建设置选项卡中设置“login”的值 - 它将像我预期的那样可以从ProcessInfo中访问。
但是,我想从项目根文件夹脚本文件“SetupCreds.sh”中设置“login”,该文件位于.gitignore中,因此在其中保留登录名和密码是安全的。 所以这个想法是:
- 添加构建阶段脚本
- 此脚本运行“SetupCreds.sh”
- “SetupCreds.sh”由导出行组成,如
export login="MyLogin
echo ${login}
,它会告诉我“login”实际上具有值“MyLogin”。
但是,这个导出仅影响构建阶段脚本环境,而不影响构建设置环境。如何进行导出以覆盖构建设置环境变量? 或者也许有另一种方法可以实现我想要的?
file="${SRCROOT}/${Tests.cfg}" if test -f $file then copy_target="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.xctest/Tests.cfg" cp -r $file $copy_target echo "Tests.cfg 文件已复制到 ${copy_target}" else echo "警告:未找到 Tests.cfg 文件。某些测试将被忽略。" fi
Bundle.for(type(of: self).self)
获取“Tests.cfg” URL。