iOS ipa瘦身

2021-07-19  本文已影响0人  helinyu

分类: 资源、编译、执行的代码

瘦身:
1、 资源文件(尤其是图片)
https://github.com/tinymind/LSUnusedResources/

1)检查文件里面没有直接使用到的

  1. 检查出来的图片并不是一定没有使用的,有可能有一些是一组的,或者作为资源使用的,这个根据自己的项目来确定是否有用,不过,这个软件已经帮助我们过滤了一次,所以范围小了很多。
  2. 按照项目图片命名的特殊性,进行判断特殊的图片是否使用了。【项目图片命名应该按照约定的规则】
  3. 压缩图片, 尤其是大的图片 imageopim
  4. 不影响是觉的情况下,可以压缩改变通道。 32bit —> 8bit
  5. xib 这些文件占用相对大点,改为代码写布局

参考,看一下静态库

2、冗余的代码
1、没有使用的代码

1)WBBlades 检查没有用的文件
里面列出来文件很多,但是,需要思考,我们排除掉第三方库等等,这个看看需要怎么修改?

  1. 过滤出来的,并不是一定是没有用的,自己还是要到代码里面搜索,因为有些是判断不出来的 【不支持,以及项目可能存在bug】

2、优化重复的代码

1)代码组织在同一个地方, 重复代码的优化

  1. 代码瘦身,不应该破坏代码的开发原则, 比如:开闭原则

3、app thinning
1> app thiing 会把上传的包重新组合, 给没给机型申城特定的安装包。

  1. 只包含当前设备的二进制文件: armv7s的机制不需要arm64的二进制文件
  2. 只包含当前文件的图片, 视网膜屏就不需要2x图了。
    把你上传的包重新组合下,会给每个机型生成特定的安装包。它的原理是,

2> On Demand Resource (按需下载)

不是很常用的资源放到后台

3> BitCode

误传可以减小尺寸,我试过没有明显效果。在编译选项里打开就行。

4> 确认编译选项:
Optimization Level: Fastest,Smallest
Deployment Postprocessing: Yes
Strip linked Product: Yes
Symbols Hidden by default: Yes
Make Strings Read-only: Yes

https://github.com/kobe1941/shell 统计各个静态库的大小
https://github.com/xuezhulian/selectorsunref iOS瘦身,没有使用的方法

尽可能的用数据来进行衡量一下

我们的目标是什么?是给“下载包”瘦身,而不是“上传审核包”。区别在于审核包,会包含所有硬件架构的二进制内容。上传后苹果会自动帮我们拆分开,针对不同手机生成不同的下载包。下载包的大小可以到app 开发者后台自己看。

小结:
1、 主要看资源文件的大小优化
2、一大片的不是使用的代码,应该删除
3、代码优化,对于占用大小影响不大,如果可以选择,代码的合理性应该更加重要
4、静态库要不要处理?
5、 我们是下载包瘦身,而不是上传审核包。 审核包是包括所有硬件架构的二进制内容, 上传苹果后会自动拆分开,针对不同的手机生成不同的下载包。 —— app开发者后台查看。 但是,上传包可以瘦身普通的内容 —— 区分: (1)上传包阶段的瘦身 , (2)下载包阶段的瘦身

删除无用代码带来另一个福利就是,App的启动速度变快了。
启动速度的时间长度, 和包的大小也是 有关系的 , 因为启动的过程就是加载的过程。 这个启动的优化,下一次详细弄一下;

1、 看一下各个版本的记录, 图片压缩是否有效果?

参考链接:
https://xie.infoq.cn/article/c2de1ff54b2f5b88170541b73
http://www.cocoachina.com/articles/859032
http://sindrilin.com/2018/12/11/image_subtraction.html
http://www.cocoachina.com/articles/859032
https://github.com/jezzmemo/iOSThin

https://www.jianshu.com/p/77d306595698 这个工具

1、资源瘦身
2、编译瘦身
3、可执行文件优化,

上一篇下一篇

猜你喜欢

热点阅读