带有动态库的 32 位应用程序在 64 位设备上崩溃

32-bit App with dynamic library crash on 64-bit device

我面临以下情况:

不起作用 - 应用在加载时崩溃并出现以下错误:

dyld error message library not loaded reason no suitable image found

有什么解释吗?

解释:加载到 64 位设备上的 32 位二进制文​​件无法这样做,因为在 iOS 9 中 32 位页面大小已从 4096 字节更改为 16384 字节.

结论:带有动态库的 32 位应用不能在 64 位设备上运行。

解决方案(二选一即可):

  • 在动态库项目中为Other linker flags添加一个新条目:

    -Wl,-segalign,4000

  • 更新应用本身以支持 arm64 架构