最佳答案
我们的自动生成程序正在 Jenkins 身上运行。构建本身在从服务器上运行,从服务器通过 SSH 执行。
我得到一个错误:
00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.
到目前为止,我已经尝试了在这里的其他帖子中看到的所有建议:
在所有情况下,我都会得到相同的错误。
为了诊断这个问题,我尝试在我的本地终端上运行“安全解锁-钥匙链”命令,发现它实际上并没有解锁钥匙链——如果我查看钥匙链访问,锁符号仍然存在。无论是在命令行上传递密码还是让它提示我输入密码,都是这种情况。使用 GUI 解锁相同的密钥链将提示我输入密码,然后解锁。此外,如果我运行“ security lock-keychain”,我 做在运行命令后立即看到密钥锁。这让我觉得解锁钥匙链根本没用。我在 Lion (我们正在用它来构建奴隶)和 Mavericks (我正在开发它们)身上体验到了同样的行为
接下来,我尝试在所有安全命令中添加-v:
list-keychains "-d" "system" "-s" "/Users/tester/.secret/App.keychain"
Listing keychains to see if it was added: ((
"/Library/Keychains/System.keychain"
))
unlock-keychain "-p" "**PASSWORD**" "/Users/tester/.secret/App.keychain"
build/App.app: User interaction is not allowed.
由此看来,list-keychain 是不起作用的,也许两者都不起作用。 :/
有一个 类似的问题。解决方案很有趣——在 launchctl 中将“ SessionCreate”设置为 true。但是我不是在主机上构建——我的构建过程是从从构建机器上的 SSH 启动的。也许在运行“ SessionCreate”时,有一种命令行方式可以执行 launchctl 正在执行的操作?