我有一个框架,它是用Swift
和Objective-C
开发的。我为两者创建了胖框架,如果尝试在项目中使用它,则会收到类似以下错误:
两个框架的找不到架构x86_64的模块,找到arm64,arm,arm7
。我正在使用Xcode 10.2。
答案 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