在Objective C中检查框架的支持体系结构

苹果在明年2月份要求,提交给AppStore的每个应用都需要支持Arm64架构。 在我的项目中,我使用了许多静态库(* .a),并且可以检查这些库是否支持arm64 arch。 但是,我不知道是否有框架如Facebook.framework支持这个新的拱门。 我如何检查它? 请帮我解决这个问题。 谢谢。

每个框架实际上只是一个目录 – 甚至不像一个包目录,而是一个普通的目录,你可以用Finder直接浏览。 进入.framework中的Versions/A ,在那里你会find一个与框架同名的文件。

该文件实际上是一个静态库(.a)文件,没有扩展名。 如同任何静态库(使用filelipo -info )一样检查它,然后您将看到该文件包含的二进制文件。

不过你也可以通过XCode知道。 如果您将项目切换为支持arm64,并且链接到的库没有arm64支持,则在编译设备时,XCode将无法完成链接。

在terminal中检查以下命令

 lipo -info yourlib.a 

输出如:胖文件中的体系结构:yourlib.a是:i386 x86_64 armv7 arm64

在Framework.framework的情况下

//进入下面的框架

 cd /Your_Path_/CocoaLumberjack.framework 

然后运行命令

 lipo -info CocoaLumberjack