检查静态库是否支持bitcode

苹果在 Xcode 7 中引入了 bitcode,在打包提交时,会包含 bitcode。如果项目用到了以二进制格式发布的第三方库,第三方库也需要包含 bitcode 才行。如果没有包含 bitcode,编译时会报错,除非手动关闭 bitcode 特性。

除了通过编译时的报错来判断第三方库是否包含 bitcode,我们也可以自己检查。首先需要判断 library 是否是 fat 的,可以用 lipo 命令:

lipo -info libdemo.a

其中 libdemo.a 就是我们要检查的文件。一般第三方库都会发布 fat library 以支持各个 CPU 架构。

接着,如果是 fat library,需要将某个 CPU 架构的 slice 提取出来:

lipo -thin arm64 libdemo.a -output libdemo-arm64.a

这样,我们就将 arm64 这个 slice 提取出来了。接下来我们需要将这个 slice 里面的目标文件解压出来,可以用 ar 命令:

ar -x libdemo-arm64.a

假设我们解压了 libdemo_la-util.o 这个目标文件。最后,我们检查目标文件中,是否包含 __bicode 这个段(segment):

otool -arch armv7 -l xxxx.a | grep __bitcode | wc -l

如果找到了,说明第三方库是支持 bitcode 的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值