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

Posted

技术标签:

【中文标题】Xcode Server Bot 集成无法使用断言导出存档失败:exportArchive: ipatool failed with an exception【英文标题】:Xcode Server Bot integration fails to export archive with Assertion fail: exportArchive: ipatool failed with an exception 【发布时间】:2016-03-18 18:18:54 【问题描述】:

我有一个使用 Xcode 7.2 和 Server 5.0.15 的构建服务器设置,因此我们可以使用 CI。我能够创建一个创建存档的 Xcode Bot,但它无法完成最后一步,即将 ipa 存档导出到服务器,以便可以通过临时构建下载它。

我能够从本地计算机创建存档,但是每当我使用 Distribution 作为方案运行构建机器人时,我都会收到此错误...

Bot Issue for TEST-BUILD-BOT-3 (build service warning)
Integration #8 of TEST-BUILD-BOT-3
Open in Xcode: xcbot://(null)/botID/fa5f2ef869edbde2181109e01843e862/integrationID/fa5f2ef869edbde2181109e01847dbb0

Assertion: exportArchive: ipatool failed with an exception: #<Errno::EEXIST: File exists - /var/folders/3x/8t3j9vnj48530fxd4g4djp14000087/T/ipatool20160318-45875-5xq2zz/MachOs/iphoneos/armv7/(dylibs)/libswiftContacts.dylib>
File: (null):(null)

Full logs for this integration are attached.

一方面,我不确定完整日志的附加位置(此错误显示在 Xcode 构建机器人窗口中)。

关于我的项目的一些信息:

该项目由一个具有三个扩展(分享照片、分享 safari 和手表)的应用组成。 我正在使用带有一些 swift 框架的 Cocoapods,所以我使用的是 use_frameworks!我的 podfile 中的关键字。

我尝试了以下方法:

确保所有目标(包括 pod)都在使用分发证书。 已尝试启用和不启用位码。

尝试解决此问题最糟糕的部分是,每次我想测试我所做的一些更改时,构建机器人都需要 20-30 分钟。

任何建议将不胜感激!

【问题讨论】:

你知道它是否在构建过程中失败了吗?或者打包分发时? @bolnad 我相当肯定它是在分发版本的打包过程中,因为我仍然得到项目的存档,只是不是可分发的 ipa.... 如果这有意义的话。跨度> 是的,几周前我遇到了一个问题,即构建在尝试打包构建时卡住了,结果发现目标仅设置为 32 位版本和最新版本Xcode 7 不喜欢这样。但是,如果我将其存档,我仍然可以手动构建它 你有没有发现这个问题?我没有遇到同样的问题,在本地和通过机器人构建。似乎问题与 cocoapods github.com/CocoaPods/CocoaPods/issues/3446 有关,但不完全确定它是否是 cocoapods 问题 【参考方案1】:

我在 watchapp 和 watchapp 扩展目标中遇到了同样的错误,我在 Build Settings 下更改了设置

Embedded Content Contains Swift Code   No

错误消失了

我从apple 发现了这篇技术帖子,其中说任何嵌入的内容都需要设置为否,以防止添加 swift 库的多个副本。我将其解释为监视目标将是嵌入的内容,(不确定这是否是他们的意思)

【讨论】:

以上是关于Xcode Server Bot 集成无法使用断言导出存档失败:exportArchive: ipatool failed with an exception的主要内容,如果未能解决你的问题,请参考以下文章

在使用 Xcode Server bot 集成之前复制文件

xcode server bot存档导出方法

利用Xcode Server实现bot持续集成

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

与 Xcode Bot 的持续集成

Xcode Server bot 无法使用默认命令读取属性列表