【问题标题】:file was built for arm64 which is not the architecture being linked (x86_64)文件是为 arm64 构建的,它不是被链接的架构 (x86_64)
【发布时间】:2015-05-08 07:18:01
【问题描述】:

我正在构建一个首先在我的 ios 模拟器中使用的框架。但是,在将其导入主项目时出现此错误:

文件是为 arm64 构建的,它不是被链接的架构 (x86_64)

这是我的框架的构建信息:

更新:

我使用这种技术创建了一个通用框架:https://medium.com/@syshen/create-an-ios-universal-framework-148eb130a46c,但我仍然收到错误

更新:在二进制文件上运行文件的结果:

hunterp$ file dinkle 
dinkle: Mach-O universal binary with 2 architectures
dinkle (for architecture x86_64):   Mach-O 64-bit dynamically linked shared library x86_64
dinkle (for architecture arm64):    Mach-O 64-bit dynamically linked shared library

【问题讨论】:

  • 在构建框架时,您是否选择了“Build Active Architecture Only = NO”?大多数人都忘记了这一点。
  • @Raptor 看看图片....回答你的问题不是吗?
  • 哎呀,我的错,我忽略了它。
  • 你能显示在二进制文件上运行file 的输出吗?
  • 好的,您能否再次检查所有配置的“仅构建活动架构”是否设置为否?例如。从侧面的三角形展开菜单。

标签: ios objective-c xcode swift


【解决方案1】:

创建框架并将 .h 文件转换为 .a fat 文件。使用模拟器目标和设备目标编译您的项目,完成这两个任务后您必须加入以使用 shell 制作通用文件。

【讨论】:

    【解决方案2】:

    我错误地复制了二进制框架,并使用了在我将其更改为通用框架之前的旧框架。

    【讨论】:

    • 您与 LIPO 合作过吗?如果你想让你的框架与模拟器和真实设备一起工作,你就必须这样做。 :)
    • 其实我想知道你是如何创建一个通用框架的。因为我尝试使用 lipo -create 创建一个但没有成功。我遵循了许多教程但没有成功。提前致谢
    猜你喜欢
    • 1970-01-01
    • 2016-09-24
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    相关资源
    最近更新 更多