一、iOS9新增的Bitcode概念
1、关于App Thinning
iOS9之前,用户下载应用都是下载整个app包。其中包含了64-bit和32-bit、1x 2x 3x,现在终于可以根据设备按需下载。为此,Apple提供了3个组成部分:
·Slicing
当我们上传打包文件到iTunes Connect时,会根据app所支持的设备,切片成一个个App variant,用户下载安装对应的App variant。例如:图片资源会根据分辨率切片,我们只需使用asset catalog管理好图片资源即可。
· Bitcode
Bitcode是一种编译程序的中间代码,在编译器更新时,Apple 可以用你之前提交的 Bitcode 进行优化,这样你就不必在编译器更新后再次提交你的 app,也能享受到编译器改进所带来的好处。
注:如果App启用了Bitcode,那么确保所有框架也启用了Bitcode
·On-Demand Resources
二、启用Bitcode
E33E6B7E-C05B-476F-B547-4A78A6072974.png即便.framework或者.a都启用了Bitcode,当程序打包时,也可能出现bitcode不完全。
ld: bitcode bundle could not be generated because '.framework或者.a路径' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture arm64或者arm7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
.framework或者.a所在target如下设置
58AB6959-4CD6-4469-8C18-14782E4E1520.png
网友评论