iOS rebuild from bitcode对ipa大小的影响
https://developer.apple.com/library/content/technotes/tn2432/_index.html
为了测试一下rebuild from bitcode的具体作用,我做了以下测试
Section One : 应用程序enable_bitcode 是 true,就是允许app可以bitcode。
1.选择企业发布,发布一版只支持iphone5的ipa,并选择rebuild from bitcode
2.用同样的archive 文件,再发布一版iphone5的ipa,这次不选择rebuild from bitcode
首先,选择了rebuild from bitcode的,会多出一个漫长的 bitcode编译时间,如下图

2次生成的文件表面看差不多

但是,开了bitcode的ipa是1.1M,没开的是1.3M。
在看看App Thinning Size Report里的区别,
开了rebuilt from bitcode的
Supported devices: iPhone
App + On Demand Resources size: 1.1 MB compressed, 2.5 MB uncompressed
App size: 1.1 MB compressed, 2.5 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed
没有选择rebuilt from bitcode的
Supported devices: iPhone
App + On Demand Resources size: 1.3 MB compressed, 3.5 MB uncompressed
App size: 1.3 MB compressed, 3.5 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed
如果不对特定机型编译,选择生成一个通用的ipa,也存在rebuilt from bitcode选项。我们再比较一下。
选择了的话,ipa是1.7m。 不选择的话,是2.1m。可以看出rebuilt from bitcode 在这种情况下能够减小ipa体积,即使不是针对特定机型生成的ipa。
Section One 可以得出结论:如果app使用了 enable_bitcode,那么在organizer里生成ipa时,选择rebuild from bitcode选项,会使ipa的体积缩小。
Section Two 应用程序enable_bitcode 是 false
首先,生成的archive 文件就比较小,是33m ,而刚才开了 bitcode的是36m。
1.选择企业发布,发布一版iphone5的ipa,并选择rebuild from bitcode
2.用同样的archive 文件,再发布一版iphone5的ipa,这次不选择rebuild from bitcode
开启rebuild from bitcode 的ipa 是1.3m,不开的ipa 也是 1.3m,2者只差了 2 Byte。
Supported devices: iPhone
App + On Demand Resources size: 1.3 MB compressed, 3.5 MB uncompressed
App size: 1.3 MB compressed, 3.5 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed
和Section One 测试中的,不开启rebuild from bitcode 的ipa,差50 Byte 左右。
如果不对特定机型编译,选择生成一个通用的ipa,也存在rebuilt from bitcode选项。我们再比较一下。
选择了的话,ipa是2.1m。 不选择的话,是2.1m,差了200Byte左右。和Section One中的相应结果比较,差了100 Byte 左右。
通过Section Two的测试,可以得出:如果一个app 的enable_bitcode 是false,那么在 Organizer里生成ipa的时候,无论宣布选择rebuild from bitcode都是没有用的。生成的结果基本一致。
通过Section One 和 Two的比较,可以看出,如果一个程序enable_bitcode 为true,并使用 bitcode 技术编译出了ipa,会比普通的编译方法得到更小的ipa,也许代码优化方面也会更好。对于企业级发布,最常用的可能是Section One 里 enable_bitcode ,并且使用rebuilt from bitcode 生成一个通用ipa的情况。对于这种情况,虽然没有办法做到 像APP store那样『针对不同的型号设备,下载到不同的编译ipa』,但是也对ipa有优化效果,值得推荐。
iOS rebuild from bitcode对ipa大小的影响的更多相关文章
- iOS 如何缩小打包项目ipa大小
之前项目上线完全由技术老大搞,这次独立开发自己来,觉得自己的打包项目体积略大,网上搜索了一些比较不错的方法,这里总结下 1.配置编译选项 (Levels选项内)Genetate Debug Symbo ...
- iOS快速打企业包ipa
简 首页 专题 发钱啦 注册 登录 简首页专题下载手机应用 gege 2016.01.19 16:55 写了24604字,被92人关注,获得了152个喜欢 iOS快速打企业包ipa 字数256 阅读1 ...
- hbase集群region数量和大小的影响
1.Region数量的影响 通常较少的region数量可使群集运行的更加平稳,官方指出每个RegionServer大约100个regions的时候效果最好,理由如下: 1)Hbase的一个特性MSLA ...
- iOS 缩小 ipa 大小
一.爱奇艺 爱奇艺移动应用优化之路:如何让崩溃率小于千分之二 iOS8 对于 App 的 text 段有 60MB 的限制: 超过 200MB 的 App 需要连接 WIFI 下载(之前是 150MB ...
- iOS开发:bitcode介绍和使用cocoapods出现“target overrides the `OTHER_LDFLAGS`……”的解决方案
在开发中,不免需要引入第三方库,但是因为库的问题,会发生很多错误.如: 1.因为一些第三方库不包含bitcode就会报错: 一次使用xcode7.1时,发现编译失败,报错信息: umeng messa ...
- ios自定义View自动布局时计算大小
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/Impleme ...
- ios中[UIScreen mainscreen].bounds 的大小是由什么决定的?
ios中经常会用[UIScreen mainScreen].bounds 来获取屏幕的frame,但最近网上下载了个项目,在模拟器运行起来,打印[UIScreen mainScreen].bounds ...
- iOS开发-App Icons的尺寸大小
每个App中Icon的尺寸大小是不一样的,如果你添加部分尺寸的Icon,有些没有添加,xCode会给出相应的警告,最近遇到一个问题就是A 76x76 app icon is required for ...
- iOS企业开发In House ipa发布流程
这两天需要发布一个ipa放到网上供其他人安装,需要用到企业级开发者账号.在网上查了一下资料,感觉没有一个比较完善的流程,于是决定把整个流程写下来,供大家参考. 首先详细说明一下我们的目标,我们需要发布 ...
随机推荐
- openstack搭建之-glance配置(9)
一. base节点配置 #设置数据库,创建glance数据库,并设置权限 mysql -u root -proot CREATE DATABASE glance; GRANT ALL PRIVILEG ...
- vue.js实战——$event
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 老婆大人 split,slice,splice,replace的用法
split()方法用于把一个字符串分割成字符串数组 str.split("字符串/正则表达式从该参数制定额地方分割str",可选,可指定返回数组的最大长度,如果没设置参数,整个字符 ...
- JAVA多线程-实现同步
一.什么是线程安全问题 当多个线程同时共享,同一个全局变量或静态变量,做写的操作时,可能会发生数据冲突问题,也就是线程安全问题.但是做读操作是不会发生数据冲突问题. 二.如何解决线程安全问题 1)如何 ...
- spring cloud实战与思考(二) 微服务之间通过fiegn上传一组文件(上)
需求场景: 微服务之间调用接口一次性上传多个文件. 上传文件的同时附带其他参数. 多个文件能有效的区分开,以便进行不同处理. Spring cloud的微服务之间接口调用使用Feign.原装的Feig ...
- QT出现应用程序无法正常启动0xc000007b的错误
最近做了一个成绩管理系统,打包好后,运行他的exe可执行文件时,出现了如下图的错误提示: 在网上查阅了很多资料,其中有篇文章给了我很大的启示和帮助,文章地址http://www.cnblogs.com ...
- 基于stm32智能车的设计(ucosiii)---北京之行
实物演示视频:https://v.youku.com/v_show/id_XMzc3MDE3NjMyNA==.html?x&sharefrom=android&sharekey=172 ...
- SSL 证书生成与转化
1.windows 的keytool工具 2.如何将jks文件转换为pfx格式并导入客户端 https://jingyan.baidu.com/article/a65957f4c69dfc24e67f ...
- 【Spring】手写Spring MVC
Spring MVC原理 Spring的MVC框架主要由DispatcherServlet.处理器映射.处理器(控制器).视图解析器.视图组成. 完整的Spring MVC处理 流程如下: Sprin ...
- BSGS+exBSGS POJ2417+POJ3243
a^x=b(mod p)求x,利用分块的思想根号p的复杂度求答案,枚举同余式两端的变量,用hash的方法去找最小的答案(PS:hash看上去很像链式前向星就很有好感).然后如果p不是质数时,就利用同余 ...