在Xocde7发布以后,Apple提供了一项新的技术来支持APP的瘦身功能,它就是bitcode。
bitcode 是被编译程序的一种中间形式的代码。APP开启bitcode功能后会允许苹果在后期对程序的二进制进行优化。
优点
-
app一般都会支持arm64、armv7、armv7s3个指令集,这样会编译出支持3个指令集代码的数据包,也就是ipa包较大。而开启了bitcode功能后,在ipa包上传到AppStore后,苹果会根据下载应用的用户的手机指令集类型生成只包含该指令集的二进制数据包。从而达到了减小安装包体积的功能。
-
如果以后苹果又出了新的指令集,可以继续从这份bitcode中编译出可执行的代码。
缺点
没用bitcode之前,当应用程序奔溃后,开发者可以根据获取的的奔溃日志再结合上传到苹果服务器的符号表,就可以还原程序运行过程到奔溃时候调用栈信息,对问题进行定位排查。但是用了bitcode之后, 用户安装的二进制不是开发者这边生成的, 而是苹果服务器经过优化后生成的,其对应的符号信息丢失了,也就无法进行前面说的还原奔溃现场找原因了.
参考:
http://www.jianshu.com/p/f42a33f5eb61
http://www.jianshu.com/p/5cac941c72a1
http://www.jianshu.com/p/3fce0bd6f045
网友评论