无法使用Xcode 10.2中的通用框架编译项目

时间:2019-04-24 15:10:02

标签: ios frameworks

我有一个框架,它是用SwiftObjective-C开发的。我为两者创建了胖框架,如果尝试在项目中使用它,则会收到类似以下错误:

  

找不到架构x86_64的模块,找到arm64,arm,arm7

两个框架的

。我正在使用Xcode 10.2。

3 个答案:

答案 0 :(得分:1)

如果要构建包含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

信用:https://developer.apple.com/documentation/xcode_release_notes/xcode_10_2_release_notes?language=objc

答案 1 :(得分:0)

我有同样的问题,唯一的选择是在真实设备上运行该应用程序。但是,如果您只想构建项目,则选择“通用iOS设备”选项,而不选择“ iPhone 6”,“ iPhone 7”或其他。

除了要求框架的所有者发布具有x86_64体系结构的版本外,没有其他解决方案。

答案 2 :(得分:0)

碰到同样的问题,就可以使用此处存储的脚本来解决它:

https://gist.github.com/quangDecember/9f7d65964b7df8d71c4a1cfd4f95c0ee

只需使用链接中的脚本替换创建胖框架的脚本即可。这对我来说很完美。 XCode 10.2