Xcode 8 构建成功但存档失败

Posted

技术标签:

【中文标题】Xcode 8 构建成功但存档失败【英文标题】:Xcode 8 Builds Successfully but Fails on Archive 【发布时间】:2017-05-18 06:26:39 【问题描述】:

我正在使用 Mac OS Sierra 和 Xcode 8.3.2 在 Swift 中编写程序,并使用来自:https://github.com/nvzqz/RandomKit 的 RandomKit 模块。我正在使用基本的 Swift 包管理器将包导入到我的项目中。

我的程序构建并运行良好,但是当我存档它时,我收到一条错误消息“没有这样的模块'RandomKit'

它突出显示了我的代码:

import RandomKit

有谁知道为什么这会在我尝试存档时构建并运行但失败?

【问题讨论】:

在使用该库之前,您需要成功构建一次项目。评论 import RandomKit -> 构建你的项目 -> 取消评论 import RandomKit 或查看***.com/questions/27414202/… 【参考方案1】:

默认情况下,当你在 XCode 中运行时,它使用Debug 配置,而当你存档时,它使用Release 配置。在Build Settings 中,查看Build Active Architecture Only 设置。默认情况下,Yes 对应DebugNo 对应Release

这意味着当您运行时,XCode 只为模拟器的架构构建,但当您存档时,它为所有可能的 ios 架构构建。

现在,查看 RandomKit 的设置,看看它是为什么架构构建的。它需要包含所有的 iOS 架构,例如 arm64armv7armv7s

【讨论】:

感谢您的回复。我实际上正在为 Mac OS 而不是 iOS 构建应用程序。我进去并将 Build Active Architecture Only 从 No 更改为 Yes for Release,但仍然无法构建并出现相同的导入错误。【参考方案2】:

大概 4 个小时后,我终于弄明白了。我认为这一定是 Xcode 中的错误,但这是我的解决方法。

在这个文件夹中:

~/Library/Developer/Xcode/DerivedData/<My App Name>/Build/Products/Debug

我找到了 RandomKit.framework 和 ShiftOperations.framework。我将这两个文件复制到我的 Xcode 项目的根目录中,然后在我的 Xcode 项目中的 General 下链接框架。

Linking Frameworks

【讨论】:

以上是关于Xcode 8 构建成功但存档失败的主要内容,如果未能解决你的问题,请参考以下文章

xcode 项目构建成功但存档时:bitcode 包可以

kivy xcode 7 问题 - 构建和存档工作,但验证失败

Xcode 9.2 存档成功但无法导出 IPA

Flutter Xcode 12 存档构建失败,符号未定义:_OBJC_CLASS_$_STPAPIClient

存档成功,但导出失败:cordova build ios --release

Xcode 存档构建失败。签名需要开发团队