我遇到了一个错误:
00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.
我已经尝试了在其他帖子中看到的所有建议:
- 在签名之前立即使用security unlock-keychain解锁钥匙串。
- 将签名密钥移动到自己的钥匙串中。
- 将签名密钥移动到登录钥匙串中。
- 将签名密钥移动到系统钥匙串中。
- 手动设置list-keychains只包含包含密钥的钥匙串。
无论哪种情况,我都收到相同的错误。
为了诊断问题,我尝试在本地终端上运行"security unlock-keychain"命令,并发现它实际上并没有解锁钥匙串——如果我在Keychain Access中查看,锁图标仍然存在。无论我是在命令行上传递密码还是让它提示我输入密码,情况都是如此。使用GUI解锁同一钥匙串将提示我输入密码,然后解锁它。另外,如果我运行"security lock-keychain",我会在运行命令后立即看到密钥被锁定。这让我觉得unlock-keychain实际上不起作用。我在Lion(我们用于构建从机)和Mavericks(我正在开发的版本)上遇到了相同的问题。
接下来,我尝试在所有security命令中添加-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-keychains出了问题。也许两者都没有工作。 :/
这里有一个类似的问题。 解决方案很有意思——在launchctl中将"SessionCreate"设置为true。但我不是在主机上构建——我的构建过程是从SSH连接到一个从机器上启动的。也许有一种命令行的方法可以完成运行"SessionCreate"时launchctl所做的事情?