ios - 无法在 Xcode 10.2 中使用通用框架编译项目
问题描述
我有一个框架,它是在Swift
和Objective-C
. 我为两者创建了一个胖框架,如果我尝试在项目中使用它,我会收到如下错误:
找不到架构 x86_64 的模块找到 arm64,arm,arm7
对于这两个框架。我正在使用 Xcode 10.2。
解决方案
如果您正在构建一个包含 Swift 代码的框架并使用 lipo 创建一个同时支持设备和模拟器平台的二进制文件,您还必须为每个平台组合生成的 Framework-Swift.h 头文件以创建一个同时支持设备和模拟器的头文件平台。(48635615) 例如,如果您已构建:
- iOS/Framework.framework
- iOS Simulator/Framework.framework
拿:
- iOS/Framework.framework/Headers/Framework-Swift.h
- iOS Simulator/Framework.framework/Framework-Swift.h
创建一个新的:
- iOS + iOS Simulator/Framework.framework/Headers/Framework-Swift.h
新的 Framework-Swift.h 的内容应该是:
#if TARGET_OS_SIMULATOR
<contents of original iOS Simulator/Framework.framework/Framework-Swift.h>
#else
<contents of original iOS/Framework.framework/Framework-Swift.h>
#endif