【问题标题】:Unable to compile project using universal framework in Xcode 10.2无法在 Xcode 10.2 中使用通用框架编译项目
【发布时间】:2019-08-17 21:46:24
【问题描述】:

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

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

对于这两个框架。我正在使用 Xcode 10.2。

【问题讨论】:

  • 好像你的框架不是为模拟器构建的。
  • 不,我为设备和模拟器构建它。我还检查了该框架的架构,它显示了模拟器和设备架构。
  • 在 xcode 10.1 中也可以正常工作
  • 我也有同样的问题。你找到解决办法了吗?
  • 我也有同样的问题。你找到解决办法了吗?

标签: ios frameworks


【解决方案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

【讨论】:

    【解决方案2】:

    刚刚遇到同样的问题,可以使用存储在此处的脚本修复它:

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

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

    【讨论】:

      【解决方案3】:

      我有同样的问题,唯一的选择是在真实设备上运行应用程序。但如果你只是想构建项目,那么选择“Generic iOS Device”选项,不要选择“iPhone 6”、“iPhone 7”或其他。

      除了要求框架的所有者发布具有 x86_64 架构的版本之外,没有真正的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-23
        • 2018-12-23
        • 1970-01-01
        • 2019-08-16
        相关资源
        最近更新 更多