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用户的钥匙串是如何创建的?
为什么插件强制执行此操作,为什么这些方面都没有记录?
如果我可以使用其他用户的钥匙串,那么如何? - 没有记录。
答案 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