我试图在Jenkins上运行自动xcodebuild,但我遇到了错误
不允许用户交互.命令/ usr/bin/codesign失败,退出代码为1
我已经引用了"不允许用户交互"尝试使用codesign和其他类似线程签署OSX应用程序,但没有一个解决方案似乎能够正确地修复错误.
这是我已经尝试过的:
我已经允许所有项目访问钥匙串,并且我已经特别添加了代码签名到"始终允许"列表(在此处完成/sf/answers/1584652751/)
我已经将钥匙串设置为不通过Keychain Access的设置和命令自动锁定超时
security set-keychain-settings -t 3600 -l <KEYCHAIN>
Run Code Online (Sandbox Code Playgroud)我试过打电话
codesign --sign <CODE SIGN IDENTITY> --force ...
Run Code Online (Sandbox Code Playgroud)
在项目编译之前(更具体地说,这个解决方案/sf/answers/1414567311/),虽然这成功地构建了项目,但我认为编译前的协同设置是正确或可靠的.(编辑:从jenkins运行时也失败了)
以下是我正在执行的命令:
security unlock-keychain -p <PASSWORD> <KEYCHAIN>
xcodebuild -scheme <SCHEME> -workspace <WORKSPACE> -derivedDataPath <BUILD DIRECTORY> -configuration <CONFIGURATION> "CONFIGURATION_BUILD_DIR=<BUILD DIRECTORY>" "CODE_SIGN_IDENTITY=<CODE SIGN ID>" "PROVISIONING_PROFILE=<PROVISIONING PROFILE>" clean build
Run Code Online (Sandbox Code Playgroud)
有趣的是要在机器上构建项目使用上面的命令,但尝试通过ssh(和jenkins)运行完全相同的命令会导致错误.
在此先感谢您的帮助!
我正在尝试为稳定的iPhone应用程序设置持续构建/集成.
我有:
最大的问题是代码签名和钥匙串.
我们代表客户的开发者身份创建代码,因此我们有几个开发人员身份,我们将添加更多.
我想将Mini放在一个黑暗的房间里,从不看它,但是第一次使用开发者身份构建时,会弹出一个GUI对话框,询问您是否要始终允许codesign访问开发者身份.
假设您这样做,该对话框修改了钥匙串访问控制列表(ACL),以便允许使用代码签名.
您可以通过打开Keychain Access,扩展证书,选择私钥,右键单击,选择"获取信息",然后切换到"访问控制"选项卡来查看此信息."处女"密钥只在其"始终允许"应用程序列表中具有Keychain Access.您在对话框中使用和确认的一个也将具有编码.
这个框提供了一种添加应用程序的方法,除了你得到标准的Finder文件选择器,它隐藏了Unix文件夹.没有办法导航到/ usr/bin/codesign.所以手动添加是不可能的!
有没有人知道这方面的方法?
我知道有一种方法使用"安全导入"的-T开关,但是当你首先导入密钥时必须指定ACL,因此在Keychain GUI中添加的任何键都必须被抛出并重新导入.不是很好.