为了账号安全,请及时绑定邮箱和手机立即绑定

“不允许用户交互”尝试使用codesign对OSX应用程序进行签名

“不允许用户交互”尝试使用codesign对OSX应用程序进行签名

呼啦一阵风 2019-12-10 09:50:43
我们的自动化版本正在Jenkins上运行。构建本身在从属服务器上运行,并且从属服务器通过SSH执行。我收到一个错误:00:03:25.113 [codesign-app] build/App.app: User interaction is not allowed.我已经尝试了到目前为止在其他帖子中看到的所有建议:签名前立即使用安全性解锁钥匙串以解锁钥匙串。将签名密钥移到其自己的钥匙串中。将签名密钥移到登录密钥链中。将签名密钥移到系统密钥链中。手动将列表钥匙串设置为仅包含钥匙的钥匙串。在所有情况下,我都会遇到相同的错误。为了诊断问题,我尝试在本地终端上运行“ security unlock-keychain”命令,发现它实际上并没有解锁钥匙串-如果我在“钥匙串访问”中查看,则锁符号仍然存在。无论是在命令行上通过密码还是让我提示输入密码,都是这种情况。使用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.由此看来,列表钥匙串是行不通的。也许都不行。:/这里也有类似的问题。解决方案很有趣-在launchctl中将“ SessionCreate”设置为true。但是我不是在主服务器上构建的-我的构建过程是从从属构建计算机上的SSH开始的。运行“ SessionCreate”时,也许有一种命令行方式可以执行launchctl在做什么?
查看完整描述

3 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

好吧,我想我今天可以回答我自己的问题,因为在经过两天半的时间刺伤之后,我尝试过的其中一件事情似乎奏效了。我现在要退出它,希望它能继续工作。


从本质上讲,它看起来可以归结为-d system无法实际工作。因此,应该对此处周围其他问题的很多答案进行更新以反映这一点。


security -v list-keychains -s "$KEYCHAIN" "$HOME/Library/Keychains/login.keychain"

security list-keychains # so we can verify that it was added if it fails again

security -v unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN"

codesign --sign "$SIGNER_IDENTITY" --force --signature-size 9600 \

         --resource-rules src/AppResourceRules.plist --timestamp --verbose \

         "$APP"


查看完整回答
反对 回复 2019-12-10
  • 3 回答
  • 0 关注
  • 647 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信