如何检查是否为64位构建静态库?

时间:2013-09-24 22:01:26

标签: ios objective-c static-libraries lipo

我刚为iOS构建了一个静态库,其架构设置为$(ARCHS_STANDARD_INCLUDING_64_BIT)

我想确保.a库正确包含该架构,但当我在其上运行lipo -info时,我看到:

  

胖文件中的体系结构:library.a是:armv7 armv7s   (cputype(16777228)cpusubtype(0))

这是否意味着不包括arm64?如果lipo命令无法告诉我,还有其他方法可以告诉我吗?

我正在运行安装了最新命令行工具的Xcode 5。

3 个答案:

答案 0 :(得分:116)

是的,有一个arm64切片。要查看它,您需要使用iOS工具链中的lipo,而不是来自主机系统(不知道arm64):

xcrun -sdk iphoneos lipo -info $(FILENAME)

答案 1 :(得分:64)

好老file也可以做到这一点:

$ file libTestFlight.a

libTestFlight.a: Mach-O universal binary with 5 architectures
libTestFlight.a (for architecture armv7):   current ar archive random library
libTestFlight.a (for architecture armv7s):  current ar archive random library
libTestFlight.a (for architecture i386):    current ar archive random library
libTestFlight.a (for architecture x86_64):  current ar archive random library
libTestFlight.a (for architecture cputype (16777228) cpusubtype (0)):   current ar archive random library

Apple似乎没有人愿意将arm64 cputype添加到file

有趣的是,在iOS 7技术讲座视频(“建筑现代应用程序,第2部分”,PDF第35页)中,它们显示了一个工作文件工具的输出:

enter image description here

答案 2 :(得分:15)

对于.framework

lipo -info myFramework.framework/MyFramework