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