Ios 在iPhone 5s 64位上运行32位库

Ios 在iPhone 5s 64位上运行32位库,ios,objective-c,64-bit,zbar-sdk,zbar,Ios,Objective C,64 Bit,Zbar Sdk,Zbar,我正在我的应用程序中使用。如果我想在带有64位处理器的iPhone 5s上运行它,我会遇到以下错误: 是否可以在64位设备上使用32位库,因为我认为该库不会被更新。总结上述评论。64位iPhone应用程序要求所有组成库和框架均为64位。你不能混搭。从长远来看,将应用程序保留为32位是不理想的,因为只要运行一个32位应用程序,iOS就必须加载两个版本的系统库(32和64)。因此,你不想成为最后一个支持64位的应用程序 您可以使用lipo检查库中是否包含64位代码。例如,以下是32位的SBJson

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


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

总结上述评论。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,如果它不可用,您可以尝试从源代码处编译自己。

总结上述评论。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,如果它不可用,您可以尝试从源代码处编译自己。

只需从应用程序中删除64位版本,即可转到您的目标版本设置。在架构中删除arm64您找到解决方案了吗?我也有同样的问题,但我需要构建一个64位二进制文件,所以我不能使用@rckoenes的解决方案。我这里也有同样的问题!我使用了@rckoenes aproach,因为我不需要32位二进制。@Chris很遗憾,无法使用32位库为64位构建。只需从应用程序中删除64位构建,即可转到目标构建设置。在架构中删除arm64您找到解决方案了吗?我也有同样的问题,但我需要构建一个64位二进制文件,所以我不能使用@rckoenes的解决方案。我这里也有同样的问题!我使用了@rckoenes aproach,因为我不需要32位二进制。@Chris不可能用32位库构建64位。