iOS安装包瘦身

作者: 风ai翔 | 来源:发表于2020-09-14 10:47 被阅读0次

    一、常规瘦身方案

    1、压缩资源

    压缩项目中资源包括图片、字符串、音视频等资源。
    使用Assets管理图片资料,其内部实现了splicing切片技术,并且会压缩图片
    图片压缩工具:tinypng或者ImageOptim

    • 帧动画图片可替换为lotties、APNG
    • 小图或表情图可替换为iconFont
    • 大图可替换为svg、webp

    2、删除无用/重复资源

    • 图片用2x和3x图就可以,不要用1x图
    • 可以用LSUnusedResources搜索出未使用的图片

    注意:该软件搜索出来的图片有可能项目中还在用,删除之前需要在工程中先搜索下图片是否有使用再确认是否可以删除。

    3、删除无用代码

    • 删除无用类:可以用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

    Enable C++ Exceptions和Enable Objective-C Exceptions设为NO,Other C Flags添加-fno-exceptions

    6、不生成debug symbols:不能生成dSYM,但是效果非常显著

    Generate debug symbols选项 release 设置为NO

    三、脑图借鉴

    image

    四、参考文档:

    iOS 安装包瘦身 (上篇)
    iOS 安装包瘦身(下篇)
    https://github.com/wuba/WBBlades
    京东商城iOS瘦身
    微信iOS瘦身

    相关文章

      网友评论

        本文标题:iOS安装包瘦身

        本文链接:https://www.haomeiwen.com/subject/xsybektx.html