将变量从shell注入UI测试运行时(iOS)

将变量从shell注入UI测试运行时(iOS),ios,xcode,environment-variables,keychain,xcuitest,Ios,Xcode,Environment Variables,Keychain,Xcuitest,我目前正在努力解决这个问题。 在为iOS应用程序运行UI测试时,我希望首先从API获取身份验证令牌,以便在测试运行时直接进行身份验证。为了使用该API,我需要一个客户机机密,因为它是一个机密,所以需要保存在一个安全的存储中。我不能让客户机机密只是代码中的纯文本或任何其他不安全的文件(xcconfig、plist等)。这就是为什么我想把客户的秘密放入macOS的密钥链中。我还发现了如何在构建阶段脚本中从命令行访问该密码(如security find generic password-l Clien

我目前正在努力解决这个问题。 在为iOS应用程序运行UI测试时,我希望首先从API获取身份验证令牌,以便在测试运行时直接进行身份验证。为了使用该API,我需要一个客户机机密,因为它是一个机密,所以需要保存在一个安全的存储中。我不能让客户机机密只是代码中的纯文本或任何其他不安全的文件(xcconfig、plist等)。这就是为什么我想把客户的秘密放入macOS的密钥链中。我还发现了如何在构建阶段脚本中从命令行访问该密码(如
security find generic password-l ClientSecret-g

我还知道如何在UI测试期间使用启动参数或环境(如
ProcessInfo().environment[“clientSecret”]
)。 但我似乎找不到一种方法来建立我在构建阶段设置的环境变量之间的连接,或者像这样运行预操作脚本

export CLIENTSECRET=$(security find-generic-password -l ClientSecret -w)
我尝试在scheme的启动参数或环境变量中使用环境变量,如
clientSecret=$(clientSecret)
,但这对我不起作用。 甚至可以从方案的参数中访问bash运行时环境变量吗?还有别的办法吗

或者我是否有机会从UI测试Swift代码访问macOS系统钥匙链


有人有主意吗?请帮忙

请告诉我们您是如何调用测试的,我假设您是从命令行调用的,对吗?