文件是为 arm64 构建的,它不是被链接的架构 (x86_64)
Posted
技术标签:
【中文标题】文件是为 arm64 构建的,它不是被链接的架构 (x86_64)【英文标题】:file was built for arm64 which is not the architecture being linked (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
【问题讨论】:
file
的输出吗?
好的,您能否再次检查所有配置的“仅构建活动架构”是否设置为否?例如。从侧面的三角形展开菜单。
【参考方案1】:
创建框架并将 .h 文件转换为 .a fat 文件。使用模拟器目标和设备目标编译您的项目,完成这两个任务后您必须加入以使用 shell 制作通用文件。
【讨论】:
【参考方案2】:我错误地复制了二进制框架,并使用了在我将其更改为通用框架之前的旧框架。
【讨论】:
您与 LIPO 合作过吗?如果你想让你的框架与模拟器和真实设备一起工作,你就必须这样做。 :) 其实我想知道你是如何创建一个通用框架的。因为我尝试使用 lipo -create 创建一个但没有成功。我遵循了许多教程但没有成功。提前致谢以上是关于文件是为 arm64 构建的,它不是被链接的架构 (x86_64)的主要内容,如果未能解决你的问题,请参考以下文章
为 iOS 模拟器构建,但在为 iOS 构建的目标文件中链接,用于架构 arm64
为 iOS 构建,但在为 iOS 模拟器构建的目标文件中链接,用于架构 arm64