xcodebuild 在 iOS 上将参数传递给应用程序
xcodebuild pass arguments to application on iOS
有没有一种方法可以通过命令行和 xcodebuild 将变量传递给我的 iOS 应用程序单元测试?
用例:我已经设置了 Travis CI 并想将敏感数据(没有人应该看到)传递给我的测试。但我的项目是 100% 开源的
我最终得到了这个解决方案:
xcodebuild -workspace "..." -scheme "..." -sdk "..." -destination "..." -configuration Release SECRET_ARG1="$SECRET_VALUE1" SECRET_ARG2="$SECRET_VALUE2" build test;
然后在测试目标构建设置中添加这些值:
最后,您可以使用宏访问您的值:
#define STRINGIZE(x) #x
#define STRINGIZE2(x) STRINGIZE(x)
现在,这将解析为 NSString 常量:
@STRINGIZE2(SECRET_ARG1);
使用 Travis CI 构建时,您可以使用项目设置将秘密值传递给环境,或者加密并将它们放入 travis.yml 文件中(第二种方式更灵活,允许您使用一个 travis.yml 文件中的不同秘密值,但不是那么快速和方便)
有没有一种方法可以通过命令行和 xcodebuild 将变量传递给我的 iOS 应用程序单元测试? 用例:我已经设置了 Travis CI 并想将敏感数据(没有人应该看到)传递给我的测试。但我的项目是 100% 开源的
我最终得到了这个解决方案:
xcodebuild -workspace "..." -scheme "..." -sdk "..." -destination "..." -configuration Release SECRET_ARG1="$SECRET_VALUE1" SECRET_ARG2="$SECRET_VALUE2" build test;
然后在测试目标构建设置中添加这些值:
最后,您可以使用宏访问您的值:
#define STRINGIZE(x) #x
#define STRINGIZE2(x) STRINGIZE(x)
现在,这将解析为 NSString 常量:
@STRINGIZE2(SECRET_ARG1);
使用 Travis CI 构建时,您可以使用项目设置将秘密值传递给环境,或者加密并将它们放入 travis.yml 文件中(第二种方式更灵活,允许您使用一个 travis.yml 文件中的不同秘密值,但不是那么快速和方便)