无法将 Jenkins 的 XCode 插件设置为使用指定的钥匙串?



XCode插件似乎假设只有来自用户jenkins的密钥链才能用于签署XCode构建。

有一个叫做钥匙链路径的部分,但是如果我在其中输入以下内容,
/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创建钥匙链?

为什么插件会强制这样做,为什么没有记录这方面的事情?

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

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

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

由于这个原因和其他一些原因,我已经放弃了这个插件,我正在从命令行运行我的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

最新更新