ios 如何减小app的大小

本文译自:Guides and Sample Code 中对问题:How can I make my app smaller, so that it is faster to download and install? 的回答。

本文介绍一些如何减小app首次下载安装时的大小的技巧。注意这里说的是“首次安装”,跟更新app不一样。关于“如何减少app更新时下载包大小”的介绍详见我的另外一篇译文:

  • 测量一下你的app

在尝试任何优化前,应该先测测你的app的大小。本文介绍的一些技巧是考量了一些必须考虑的消极影响后给出的,你必须权衡利弊后作出正确的选择。所以你要先测测app的大小,然后才能分析如何去优化。

app的发布流程中会产生很多产物,每个都有其作用,同时也占据空间。理解每个产物代表什么、怎么用它衡量app的大小,这一点很重要。

1、app bundle:

.app bundle 包含着app中的所有二进制文件、资源(如图片),
bundle中有着app运行在所有其支持的设备上的一切东西。就本文而言,
app bundle 就是你打包app是产生的.app文件。

2、提交到App store 的.ipa(App Store submission .ipa):

它是在你用Xcode archive后export for iOS App Store Deployment时产生的。
这个.ipa文件是一个压缩目录,包含着app bundle和一些App Store services 所需的资源,
比如用于崩溃报告的.dSYM 文件和 On Demand Resources 的一些资源包。

3、通用.ipa(universal .ipa):

它是由包含 '运行在任何设备上所需资源'的app bundle 压缩而成。
Bitcode被重新编译,其他App store所需的类似.dSYM文件和一些On Demand Resources都被移除了。
在App Store下载app时,这种.ipa文件会被下载到运行iOS 8 及更低系统版本的设备中。

4、瘦身版的.ipa(thinned .ipa):

它是由只包含'运行在特定设备上所需资源'的app bundle 压缩而成。
Bitcode被重新编译,其他App store所需的类似.dSYM文件和一些On Demand Resources都被移除了。
在App Store下载app时,这种.ipa文件会被下载到运行iOS 9 及更高系统版本的设备中。

5、通用app bundle(universal app bundle):

它是通用.ipa 的解压缩文件,app的安装过程中会将通用.ipa解压成通用 app bundle,并安装到设备中。

6、瘦身app bundle(thinned app bundle):

它是瘦身.ipa 的解压缩文件,app的安装过程中会将瘦身.ipa解压成瘦身 app bundle,并安装到设备中。
  • 获取app 大小检测报告

Xcode提供了检测app大小的工具 ,方式如下:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

最后导出的文件夹中包含App Thinning Size Report.txt文件,文件内容是这样的

这里写图片描述

注意:此报告没有将上架App Store时的那道加密程序计算在内。

上面这个App Thinning Size Report.txt文件是对app上架App Store大小的一个估值。在App Store发布应用的流程中,当生成universal .ipa和thinned .ipa文件时,开发者提交审核的.ipa中的所有的二进制文件都会被加密。加密不会改变二进制文件的大小,但是加密的二进制将具有不同的压缩特性,导致App Store 的.ipa文件比App Thinning Size Report.txt里的估计值要大。

注意:使用TestFlight分发的测试app包含其他数据,增加了iTunes Connect报告的应用程序的大小。

未完待续。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值