确定二进制文件是否包含Bitcode的方法似乎不再适用

在我search一个方法来确定是否一个iOS二进制与Bitcode构build,我发现了以下post:

如何检查一个框架是否支持Xcode7的BITCODE

在这里,build议使用以下方法来确定二进制代码是否存在:

$ otool -l libName.o | grep __LLVM 

不过,我已经尝试了几个二进制文件没有成功。 其中之一是一个我知道有位代码的库,因为我改变了项目的标志之后,编译错误消失了。 另一个是文件扩展名的二进制文件,使用Archive进行构build。 另一个是苹果手表。

我相信所有上述二进制文件都应该有位码,但是我始终没有得到上述命令的结果。

有没有人知道任何其他方法与最新的二进制文件?

我使用XCode 7.2和10.10.5以防万一。

更新:这是一个应该有bitcode的文件的例子,但上面的命令不返回任何东西。 它是来自testing文件提供程序的二进制文件。 我通过存档和部署生成它作为Ad Hoc,并确保为目标设置位代码。

https://www.dropbox.com/s/eyuzs5j1t7nsq6t/CustomDocumentProviderFileProvider?dl=0

这在这里报道似乎是otool一个问题。 使用file获取体系结构列表,然后将体系结构提供给otool 。 鉴于armv7arm64i386x86_64 armv7的胖二进制文件:

 $ file lib.a lib.a: Mach-O universal binary with 4 architectures lib.a (for architecture armv7): current ar archive random library lib.a (for architecture i386): current ar archive random library lib.a (for architecture x86_64): current ar archive random library lib.a (for architecture arm64): current ar archive random library $ otool -arch armv7 -l lib.a | grep bitcode sectname __bitcode 

根据这个问题 ,otool不报告x86_64i368

CustomDocumentProviderFileProvider似乎不包含Bitcode:

 $ file CustomDocumentProviderFileProvider CustomDocumentProviderFileProvider: Mach-O universal binary with 2 architectures CustomDocumentProviderFileProvider (for architecture armv7): Mach-O executable arm CustomDocumentProviderFileProvider (for architecture arm64): Mach-O 64-bit executable $ otool -arch armv7 -l CustomDocumentProviderFileProvider | grep bit $ 

免责声明:我是LibEBC的作者。

您可以使用ebcutil来确定在任何二进制文件(Mach-O,ELF)或库( .a / .dylib / .so )中是否存在位代码。

https://github.com/JDevlieghere/LibEBC