在iPhone 5s 64位设备上运行32位库

5
我在我的应用程序中使用zbar。如果我想在我的64位处理器的iPhone 5s上运行它,我会得到以下错误:

Trying to run on my iPhone 5s

是否可以在64位设备上使用32位库,因为我认为该库不会被更新。


1
只需从您的应用程序中删除64位构建即可,要执行此操作,请转到目标构建设置。在这里,在架构中删除“arm64”。 - rckoenes
1
你找到解决方案了吗?我也有同样的问题,但我需要构建一个64位二进制文件,所以我不能使用@rckoenes的解决方案。 - Chris
我这里也有同样的问题! - Daniel
我使用了@rckoenes的方法,因为我不需要32位二进制。 - jussi
很遗憾,使用32位库无法为64位构建。@Chris - Woodstock
1个回答

5
总结以上评论。64位iPhone应用程序需要所有组成的库和框架都是64位的。你不能混用。长期来看,保留一个32位的应用程序是非最优的,因为一旦运行单个32位应用程序,iOS必须加载两个版本的系统库(32位和64位)。因此,你不希望是最后支持64位的应用程序!您可以使用lipo检查您的库是否包含64位代码。例如,这里是32位SBJson框架:
$ lipo -info SBJson.framework/SBJson 
Architectures in the fat file: SBJson.framework/SBJson are: armv6 armv7 i386 

并且使用64位代码

$ lipo -info SBJson.framework/SBJson
Architectures in the fat file: SBJson.framework/SBJson are: armv7 armv7s i386 x86_64 arm64 

在zbar的情况下,如果它不可用,您可以尝试从源代码编译它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接