【iOS 开发】优化 iOS 安装包大小

最近优化了一下我负责的两个App ipa 包大小,记录一下优化方法。

App1:

优化前:37.8MB 优化后:15.7MB

  1. 移除重复图片,多余图片,压缩大的图片,去掉用不到的类。包大小变为35.1MB,减少了2.7MB。
  2. 把环信含音视频的 SDK 换成不含音视频的 SDK。包大小变为28MB,减少了7.1MB。
  3. 移除 armv7,不再支持 iPhone 4、iPhone 4s。包大小变为20.4MB,减少了7.6MB。
  4. 移除百度地图 SDK (项目里只用到了百度定位 SDK )。包大小变为16.6MB,减少了3.8MB。
  5. 移除环信 UI 中的兔斯基 GIF 图。包大小变为16MB,减少了0.6MB。
  6. 启动图替换为压缩后的启动图。包大小变为15.7MB,减少了0.3MB。

App2:

优化前:27.7MB 优化后:9.2MB

  1. 移除环信音视频 SDK,包大小变为20.3MB,减少了7.4MB。
  2. 移除百度地图 SDK,包大小变为14.8MB,减少了5.5MB。
  3. 移除 armv7,包大小变为9.8MB,减少了5MB。
  4. 移除环信 UI 中的兔斯基 GIF 图。包大小变为9.2MB,减少了0.6MB。

小提示

  • AppStore 上 App 信息中的展示的大小指的是安装大小,并非下载大小。所以要比打出来的 ipa 包大很多。
  • 在各个机型上面的大小也不尽相同。

总结

通过这次实践,我发现影响包大小的主要因素是某些较大的第三方库及库里的图片,以及支持iPhone 4、4s 的 armv7。对于用不到的类、图片等资源文件要及时清理,使用被蓝湖等工具压缩过的图片等方式来改善安装包大小。

最近的文章

《大话数据结构》四

第5章 串串(string)是由零个或多个字符组成的有限序列,又名叫字符串。 串的定义 串(string)是由零个或多个字符组成的有限序列,又名叫字符串。 串的比较给定两个串:s= “a1a2……an“, t= “b1b2……bm“, 当满足以下条件之一时,s<t。 n<m,且ai …

学习笔记 阅读全文
更早的文章

《大话数据结构》三

第4章 栈与队列栈是限定仅在表尾进行插入和删除操作的线性表。队列是只允许在一端进行插入操作、而在另一端进行删除操作的线性表。 栈的定义 栈(stack)是限定仅在表尾进行插入和删除操作的线性表。 我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为 …

学习笔记 阅读全文