Xcode Server Bot 集成在 xcrun xcodebuild -exportArchive "Exporting installable product" 上停止

Posted

技术标签:

【中文标题】Xcode Server Bot 集成在 xcrun xcodebuild -exportArchive "Exporting installable product" 上停止【英文标题】:Xcode Server Bot integration stalls on xcrun xcodebuild -exportArchive "Exporting installable product" 【发布时间】:2016-09-07 08:32:12 【问题描述】:

Xcode Server Bot 集成在第六阶段停止:

“导出可安装产品”

原始构建日志显示为最终条目:

$ /usr/bin/xcrun xcodebuild -exportArchive -archivePath /Library/Developer/XcodeServer/Integrations/Integration-7f80e03e9471a040c753957c2600b0a6/BetUP.xcarchive -exportPath /Library/Developer/XcodeServer/Integrations/Integration-7f80e03e9471a040c753957c2600b0a6/ExportedProduct -exportOptionsPlist /Library/Developer/XcodeServer/Integrations/Integration-7f80e03e9471a040c753957c2600b0a6/ExportOptions.plist -IDEPostProgressNotifications=YES -DVTAllowServerCertificates=YES -DVTSigningCertificateSourceLogLevel=3 -DVTSigningCertificateManagerLogLevel=3 -DTDKProvisioningProfileExtraSearchPaths=/Library/Developer/XcodeServer/ProvisioningProfiles -configuration Debug

2016-09-05 13:50:33.659 xcodebuild[61877:3819468] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/x2/t8b7x9gs2x32b686xfzq77lw000087/T/MyApp_2016-09-05_13-50-33.658.xcdistributionlogs'.
2016-09-05 13:50:33.704 xcodebuild[61877:3819468] [MT] DeveloperPortal: Using pre-existing current store at URL (file:///var/_xcsbuildd/Library/Developer/Xcode/DeveloperPortal%207.3.1.db).
2016-09-05 13:50:33.712 xcodebuild[61877:3819482]  DVTSigningCertificateSource: Searching for signing identities in default keychain search list
2016-09-05 13:50:33.738 xcodebuild[61877:3819482]  DVTSigningCertificateSource: Searching for signing identities in default keychain search list
2016-09-05 13:50:33.757 xcodebuild[61877:3819482]  DVTSigningCertificateManager: __58-[DVTSigningCertificateManager forceFullSyncWithCallback:]_block_invoke (0x7fbc650a88a0): Signing certificates = (

最终集成达到超时限制并失败并出现错误:

断言:正在运行的任务已终止,因为它没有产生任何活动 超过 1200 秒(使用 sudo xcrun xcscontrol --configure-integration-timeout 增加这个超时时间)

将超时时间增加到 1200 秒(20 分钟)以上是没有意义的,因为它永远不会完成。早期阶段需要 3 分钟,因此 17 分钟足够导出。

诸如此类的其他帖子没有提供解决方案:

Xcode Server Bot integration fails to export archive with Assertion fail: exportArchive: ipatool failed with an exception

Xcode Server Bot integration fails to export archive: Error Domain=IDEDistributionErrorDomain Code=1 "The operation couldn’t be completed."

复制私钥 - 通过拖动 - 从登录用户到系统钥匙串也没有解决:

Xcode Bots: Common Problems And Workarounds

抓着稻草,我已经尝试了几乎所有其他方法,包括教程Xcode Server Hacks: 2. Taking control with xcscontrol 中描述的--sync-portal

更不用说明显的重新启动 - 不是重置! - 使用这个命令:

sudo xcrun xcscontrol --restart

已经尝试了我能想到的几乎所有方法,这个问题如何解决?

【问题讨论】:

【参考方案1】:

最后,唯一需要尝试的是重置 Xcode 服务器

正如Xcode Server Hacks: 1. Under the Hood of Xcode Server 故障排除中强调的那样:

“当你 hack 太多而 Xcode Server 发疯时,你需要一种方法来 重置其所有状态并重新开始。当我最初 开发 Buildasaur 时,我会每天重置 Xcode Server 几次。 有一个命令可以停止所有正在运行的 Xcode 守护进程 服务器并删除 /Library/Developer/XcodeServer 的所有内容。 请注意,您的所有机器人和集成数据都将被删除为 好吧。 在调试过程中它是必不可少的工具,但要小心 生产不会意外删除您的所有机器人和集成 资产。”

该命令吹走所有机器人和配置:

sudo xcrun xcscontrol --reset.

完成后,有必要重新开始,配置服务器应用程序的 Xcode 服务以添加必要的开发团队。

这就是事情变得有趣的地方。

已输入 Apple ID,并选择了相关团队;显示错误:

“您必须是团队代理或管理员才能将此服务器添加到 开发团队”

使用 Apple 的开发者门户将 Apple ID 设置为团队管理员解决了该问题。

在测试 Bot 中重新添加后,它起作用了!

在经历了所有这些痛苦之后,我的建议如下:

-- 从 Server 的 Xcode 服务中删除团队。然后重新添加。这将暴露管理员权限的任何问题。

-- 如果失败,请执行重置并重新配置服务器的 Xcode 服务。然后再次重新添加机器人。

上面的第二个选项很痛苦,但它比花费数小时甚至数天来解决问题要快得多。我能够在一个多小时内通过复制重置、重新配置和重新添加大约十个机器人。

【讨论】:

以上是关于Xcode Server Bot 集成在 xcrun xcodebuild -exportArchive "Exporting installable product" 上停止的主要内容,如果未能解决你的问题,请参考以下文章

您如何配置 Xcode Server (Bot) 以仅保留 n 个最近的集成?

Xcode Server Bot 集成在 xcrun xcodebuild -exportArchive "Exporting installable product" 上停止

Xcode Server Bot 集成无法导出存档:错误 Domain=IDEDistributionErrorDomain Code=1“无法完成操作。”

Xcode Server Bot 集成无法使用断言导出存档失败:exportArchive: ipatool failed with an exception

XCode Server CI Bot Integrate 错误(Swift)

与 Xcode Bot 的持续集成