gpt4 book ai didi

ios - 使用 Jenkins/Hudson 作为 iOS 和 Mac 开发的持续集成时,钥匙串(keychain)中缺少证书和 key

转载 作者:IT王子 更新时间:2023-10-29 07:39:58 25 4
gpt4 key购买 nike

我正在尝试为 iOS 改进 Hudson CI,并在系统启动后立即启动 Hudson。为此,我使用了以下启动脚本:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>Hudson CI</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/java</string>
<string>-jar</string>
<string>/Users/user/Hudson/hudson.war</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>user</string>
</dict>
</plist>

这工作正常,但是当由 Hudson 启动的 xcodebuild 尝试签署一个应用程序时,它失败了,因为它无法在钥匙串(keychain)中找到正确的 key /证书。但是 key /证书对在那里,因为如果我从命令行启动 Hudson,它工作正常。

你知道为什么会这样吗?

最佳答案

我找到了一个解决方案,让我可以访问我的 Jenkins 用户的常规钥匙串(keychain)。

找到这个 plist:/Library/LaunchDaemons/org.jenkins-ci.plist 然后:

  • 添加值为 jenkinsUserName 元素。
  • 将值为 trueSessionCreate 元素添加到 plist 文件。这为您在 UserName
  • 中指定的用户提供了访问普通钥匙串(keychain)的权限

例子:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnvironmentVariables</key>
<dict>
<key>JENKINS_HOME</key>
<string>/Users/Shared/Jenkins/Home</string>
</dict>
<key>GroupName</key>
<string>wheel</string>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>org.jenkins-ci</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Library/Application Support/Jenkins/jenkins-runner.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>UserName</key>
<string>jenkins</string>
<key>SessionCreate</key>
<true/>
</dict>
</plist>

然后重新启动守护进程并尝试在 Jenkins 中运行一个调用 security list-keychains 的作业。您不应再将 System.keychain 视为唯一的条目,而是常规的 login 和您可能已添加到列表中的 any 自定义 key 链“jenkins”用户的钥匙串(keychain)。

通过上述设置,我可以在我的 Jenkins 构建服务器上使用来自自定义钥匙串(keychain)的代码签名证书。我不必在我的系统钥匙串(keychain)中安装任何证书或 key 。

关于ios - 使用 Jenkins/Hudson 作为 iOS 和 Mac 开发的持续集成时,钥匙串(keychain)中缺少证书和 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6827874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com