2

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 创建钥匙串?

为什么插件会强制执行此操作,为什么没有记录这方面的内容?

如果我可以使用来自不同用户的钥匙串,那么如何使用?- 它没有记录。

4

2 回答 2

3

保留 jenkins 的默认值,创建文件夹/Users/Shared/Jenkins/Library/Keychains并在那里放置一个名为login.keychain.

您可以通过菜单项使用钥匙串访问创建该文件File - New Keychain...。你放在那里的是缺少相关私钥的证书。

于 2013-01-21T13:11:34.753 回答
0

由于这个原因和其他几个原因,我已经放弃了那个插件,我正在运行我的 Xcode 构建并从命令行签名,使用“执行 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

于 2012-12-02T03:44:49.043 回答