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
对应Debug
,No
对应Release
。
这意味着当您运行时,XCode 只为模拟器的架构构建,但当您存档时,它为所有可能的 ios 架构构建。
现在,查看 RandomKit 的设置,看看它是为什么架构构建的。它需要包含所有的 iOS 架构,例如 arm64
、armv7
和 armv7s
。
【讨论】:
感谢您的回复。我实际上正在为 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 构建成功但存档失败的主要内容,如果未能解决你的问题,请参考以下文章
kivy xcode 7 问题 - 构建和存档工作,但验证失败
Flutter Xcode 12 存档构建失败,符号未定义:_OBJC_CLASS_$_STPAPIClient