不可能设置Jenkins' XCode插件使用指定的钥匙串?

时间:2012-11-30 17:53:55

标签: jenkins xcodebuild jenkins-plugins

XCode插件似乎假设只有来自用户jenkins的钥匙串才能用于签署XCode版本。

有一个名为Keychain path的部分,但是如果我进入那里,则有以下内容      /Users/Me/Library/Keychains/login.keychain

然后构建日志显示以下内容:

"Will not set default: file /Users/Shared/Jenkins/Library/Keychains/Users/Me/Library/Keychains/login.keychain does not exist"

因此插件已将我输入的内容附加到/ Users / Shared / Jenkins / Library / Keychains /。

如果我将其保留为

的默认值
${HOME}/Library/Keychains/login.keychain 

然后构建日志说:

"Will not set default: file /Users/Shared/Jenkins/Library/Keychains/login.keychain does not exist"

因此,XCode构建插件强制用户成为Jenkins - 这意味着必须以用户Jenkins的身份设置钥匙串? 在这种情况下,如何完成 - 当Jenkins安装到Mac上时,它默认创建一个名为jenkins的用户,但是AFAIK这是一个匿名用户,实际上它不可能像用户jenkins一样登录到机器。 因此,jenkins用户的钥匙串是如何创建的?

为什么插件强制执行此操作,为什么这些方面都没有记录?

如果我可以使用其他用户的钥匙串,那么如何? - 没有记录。

2 个答案:

答案 0 :(得分:3)

保持jenkins默认为原样,创建文件夹/Users/Shared/Jenkins/Library/Keychains并在其中放置一个名为login.keychain的文件。

您可以使用Keychain Access通过菜单项File - New Keychain...创建该文件。你放在那里的是丢失的证书以及相关的私钥。

答案 1 :(得分:0)

我已经放弃了这个插件以及其他原因,我正在运行我的Xcode构建并从命令行进行签名,并执行“Execute Shell”步骤。

xcodebuild -verbose -alltargets -configuration Debug clean build CODE_SIGN_IDENTITY="${CODE_SIGN_IDENTITY}" PROVISIONING_PROFILE=${PROVISIONING_PROFILE}
&&
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${WORKSPACE}/client_trunk/build/Debug-iphoneos/${Application}.app" -o "${WORKSPACE}/client_trunk/build/Debug-iphoneos/${Application}-Debug-${shortVer}.${revVer}.ipa" --sign "${CODE_SIGN_IDENTITY}" --embed "/Users/[youruser]/Library/MobileDevice/Provisioning Profiles/${PROVISIONING_PROFILE}.mobileprovision"

上面,${CODE_SIGN_IDENTITY}看起来像iPhone Developer: blah ${PROVISIONING_PROFILE}是个人资料的十六进制数,如F152C66E-B99A-47F6-B262-376CE4403D71

要解决您的钥匙串问题,请尝试以下方法:

security default-keychain -s <keychain-name>.keychain