iOS APP 瘦身实践指南
由于公司项目由原生转为了混合开发,但是APP 的 release包 生成ipa ,有 80M 之大,
实际上,应用原生的部分已经很小了,但是项目中还存在着 很多原生的控制器,viewmodel 等类所以决定对现有app 进行瘦身
1.审视APP哪些东西很导致ipa 包很大
将ipa 包解压,发现,除了打包生成的二进制,和资源文件外,有两个文件最大;
那么主要针对不用的图片文件 和 打包后的资源文件处理,尽量减少不用的代码的引用也能减小ipa 的包的大小;
2.瘦身结果
瘦身前瘦身后
3.瘦身思路
- 1.删除不需要的资源文件
- 2.删除废除的第三方SDK
- 3.对于低版本的RAM 不再支持
4.瘦身工具
- 工具1: synx --项目虚拟文件夹整理工具 下载链接https://github.com/venmo/synx
一个命令行工具,重组您的Xcode项目文件夹以匹配您的Xcode工程,把你project 里虚拟目录分隔成真实的文件夹,
- 工具2 :LSUnusedResources--[ 项目资源文件清理工具 ] ()下载链接 https://github.com/tinymind/LSUnusedResources
删除project 工程中不用的资源文件
ipa 解压后,除了资源文件还有一个比较大的 .car 文件,解压查看xcode 打包了哪些东西,是什么东西导致ipa 爆大;
5.瘦身过程
App 瘦身整理:
8月1号之前的 公司项目 (8月1日)
安装包大小 | size |
---|---|
5.4.4 版本ipa包 | 77.5M |
Universal | 97.9 MB |
iPhone 6s | 54.2 MB |
iPhone 6s Plus | 60.3 MB |
5.4.5 版本 瘦身后 (8月11日)
安装包大小 | size |
---|---|
5.4.4 版本ipa包 | 68.9 MB |
Universal | 80.8 MB |
iPhone 6s | 40.1 MB |
iPhone 6s Plus | 48.4 MB |
(测试通过)
平均安装包缩小了大约 15M ;
5.4.5 (223 版本-- 删除 ARMV7 ) (8月11日)
223 安装包大小 | size |
---|---|
5.4.4 版本ipa包 | 48.6 MB |
Universal | 62.2 MB |
iPhone 6s | 40.1 MB |
iPhone 6s Plus | 48.4 MB |
总结 223 版本因为删除了ARMV7 所以包小了很多,当我恢复支持ARMV6 ,且删除了引用的viewModel 和Controller 但是ipa 包反而变大了,所以,我猜测删除ARMV7 是有效的;
5.4.7 (240 版本-- 删除很多control 和viewmodel ) (8月11日)
224 安装包大小 | size |
---|---|
5.4.4 版本ipa包 | 54.7 MB |
Universal | 64.2 MB |
iPhone 6s | 31.7 MB |
iPhone 6s Plus | 39.8 MB |
总结 224(测试中)恢复删除的ARM7,ipa 变大了,但是单独的 各个iphone 的版本实际上还是缩小了一些;所以,ARM的支持越多,会导致生成的ipa 越大,但是相应各个iphone 的安装包实际变化不大
ARM了解
删除过时的 ARM 支持
首先来了解一下Architectures中几个参数的含义
- ARMv6:ARM11内核用于iPhone2G和iPhone3G中的架构
- ARMv7:modern ARM内核用于iPhone3GS和iPhone4/S中的架构
- ARMv7s:A6内核用于iPhone5中的架构
- ARM64:A7内核用于iPhone5S/C中的架构
- 之前的春秋旅游支持 (arm64 armv7 armv7s)(删除 armv7)
友情链接:
参考了这几个哥们的文章和瘦身记录;
iOS学习之解压Assets.car;
缩小 ipa包 压缩 ipa iOS 如何缩小打包项目ipa大小;
当我们谈论iOS瘦身的时候,我们到底在谈论些什么;