我正在尝试使用 shell 命令使用 jenkins 管道构建我的应用程序。下面是我用来构建应用程序的命令。
sh 'xcodebuild -workspace projectname.xcworkspace - allowProvisioningUpdates -scheme projectname_UAT -sdk iphoneos - configuration Debug clean build'
下面是我得到的错误 i 控制台。
注意:使用新的构建系统
注意:规划构建
2018-10-11 11:19:36.638 xcodebuild[92399:5181481] DVTPortal:服务"遇到来自门户的意外结果代码("1100"(
2018-10-11 11:19:36.638 xcodebuild[92399:5181481] DVT密码:错误:
错误域=DVTPortalService错误域代码=1100"您的会话已过期。 请登录。用户信息={有效负载={类型 = 可变字典,计数 = 9,
条目 =>
0 : responseId = <CFString 0x7ff48deef220 [0x7fff94b6daf0]>{contents = "40d9ad44-c951-49da-b3f3-b3ea434765a1"}
2 : <CFString 0x7fff94a90b58 [0x7fff94b6daf0]>{contents = "protocolVersion"} = QH65B2
3 : <CFString 0x7ff48dea3420 [0x7fff94b6daf0]>{contents = "requestUrl"} = <CFString 0x7ff48de3d9a0 [0x7fff94b6daf0]>{contents = "https://developerservices2.apple.com/services/QH65B2/viewDeveloper.action"}
6 : <CFString 0x7ff48dec8c30 [0x7fff94b6daf0]>{contents = "userLocale"} = en_US
8 : resultCode = <CFNumber 0x44c37 [0x7fff94b6daf0]>{value = +1100, type = kCFNumberSInt64Type}
9 : userString = <CFString 0x7ff48ded0cc0 [0x7fff94b6daf0]>{contents = "Your session has expired. Please log in."}
10 : <CFString 0x7ff48dea94d0 [0x7fff94b6daf0]>{contents = "resultString"} = <CFString 0x7ff48de648e0 [0x7fff94b6daf0]>{contents = "authentication.failed"}
11 : httpCode = <CFNumber 0xc837 [0x7fff94b6daf0]>{value = +200, type = kCFNumberSInt64Type}
12 : <CFString 0x7ff48de340f0 [0x7fff94b6daf0]>{contents = "creationTimestamp"} = <CFString 0x7ff48de9a7d0 [0x7fff94b6daf0]>{contents = "2018-10-11T10:19:36Z"}
}
我什至尝试在本地 xcode 以及我的 jenkins 安装的机器中从我的 xcode 首选项中删除开发人员帐户。我再次重新添加了它。还删除了两个地方(本地钥匙串,远程钥匙串(中已经从钥匙串应用程序登录的会话,但似乎没有什么可以帮助我。我正在使用Xcode10,Mac OS Mojave,可能有什么问题,任何帮助不胜感激。谢谢。
这有助于解决 Jenkins 使用 ssh 运行奴隶的问题:
- 通过 Xcode 的偏好设置删除帐户
- 退出 Xcode
- 将偏好设置设置为不使用钥匙串服务。在终端中键入以下内容并按回车键:
defaults write com.apple.dt.Xcode DVTDeveloperAccountUseKeychainService_2 -bool NO
- 重新
- 打开 Xcode 并重新添加帐户
来源: https://forums.developer.apple.com/thread/112606
在一个专门用于构建一个特定应用程序(适用于iOS和Android(的Jenkins构建奴隶上也遇到了这个问题。 Mac在Mojave和Xcode 10.1上
修复似乎是登录到Mac,并使用Xcode UI而不是xcodebuild导出Jenkins创建的存档。 完成此操作后,下一个 Jenkins 构建时没有问题。 我说似乎是因为我没有对詹金斯的工作或奴隶做任何其他事情,而且在此之前它一直失败。 看起来很奇怪,但你有它。
这个特定的问题并没有发生在构建其他应用程序的构建奴隶上,但这些其他从站在使用 Xcode 10.1 时,在 High Sierra 上。 然而,自从苹果合并Apple Developer和App Store Connect以来,我们在所有iOS版本上都有其他奇怪的行为。
几个星期以来,我遇到了类似的问题。由于更新到 Xcode 10,Jenkins 所做的构建的每个方面都会成功,除了我会收到该错误并且构建会失败。直接在 Xcode 中构建、签名等很好。
就我而言,解决方案是Xcode 10.1更新。您列出的错误仍然存在于 Jenkins 输出中。但是,它不再导致 Jenkins 构建失败。
可悲的是,我实际上并不知道是什么导致了失败,所以我没有任何进一步的见解。
就我而言,我收到此错误的原因是因为我在我的机器上手动更改了团队,并且不小心将更改推送到遥控器上,这导致 Jenkins 构建失败,但即使在我更改团队后 Jenkins 仍然失败,在差异很多之后,我发现project.pbxproj
文件中CODE_SIGN_IDENTITY
必须CODE_SIGN_IDENTITY = "iPhone Distribution";
,而不是希望它有所帮助="Apple Development"
我在运行会话过期的颤振项目时出错。
- 退出 Xcode。
- 在终端中运行以下命令
- 转到 Xcode>首选项>帐户
- 再次登录
defaults write -g DVTDeveloperAccountUseKeychainService -bool NO