iOS性能优化 — 三、安装包瘦身

原文作者:akon
原文地址:https://xiaozhuanlan.com/topic/1875432609
上篇文章为大家讲解了卡慢监控及解决,这篇文章继续为大家讲解下iOS安装包瘦身思路。
- 瘦身指导准则
- 常规瘦身方案
- 压缩资源
- 删除无用/重复资源
- 删除无用代码
- 非常规瘦身方案
- 脑图借鉴
瘦身指导准则
总体指导准则为:压缩资源、删除无用/重复资源、删除无用代码、通过编译选项进行优化。
常规瘦身方案
压缩资源
项目中资源包括图片、字符串、音视频等资源。因为项目中图片比较多,所以资源压缩一般会从图片入手。在把图片加入到项目中时候需要采用tinypng或者者ImageOptim对图片进行压缩;另外,可以通知设计,对切图进行压缩解决再上传;不需要内嵌到项目中的图片可以改为动态下载。
- png,jpg,gif可以替换成webp
- 动画图片可替换为lotties、APNG
- 小图或者表情图可替换为iconFont
- 大图可替换为svg
删除无用/重复资源
删除无用的资源。项目中主要以删除图片为主:
- 图片用2x和3x图即可以,不要用1x图。
- 可以用LSUnusedResources搜索出未使用的图片而后删除之。注意:该软件搜索出来的图片有可能项目中还在用,删除之前需要在工程中先搜索下图片能否有使用再确认能否可以删除。
删除无用代码
删除无用类和库:可以用WBBladesForMac来分析,注意:通过字符串调用的类也会检测为无用类。
非常规瘦身方案
1、Strip :去除不必要的符号信息。
-Strip Linked Product 和 Strip Swift Symbols 设置为 YES,Deployment Postprocessing 设置为 NO,发布代码的时候也需要勾选 Strip Swift Symbols。
- Strip Debug Symbols During Copy 和 Symbols Hidden by Default 在release下设为YES
- Dead Code Stripping 设置为 YES
- 对于动态库,可用
strip -x [动态库路径]去除不必要的符号信息
2、Make Strings Read-Only设为YES。
3、Link-Time Optimization(LTO)release下设为 Incremental。WWDC2016详情编译时会移除没有被调用的方法和代码,优化程序运行效率。
4、开启BitCode
5、去除异常支持。不能使用@try @catch,包只缩小0.1M,效果不明显。
Enable C++ Exceptions和Enable Objective-C Exceptions设为NO,Other C Flags增加-fno-exceptions
6、不生成debug symbols:不能生成dSYM,效果非常明显。
Generate debug symbols选项 release 设置为NO
脑图借鉴

参考文档:
iOS 安装包瘦身 (上篇)
iOS 安装包瘦身(下篇)
wuba/WBBlades
京东商城iOS瘦身
微信iOS瘦身
资料推荐
假如你正在跳槽或者者正准备跳槽不妨动动小手,增加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » iOS性能优化 — 三、安装包瘦身