以下列出了安装包瘦身的无脑执行流程,其中“奇技淫巧”部分为选做题

  • 资源优化

    • 删除无用图片

      • 使用LSUnusedResources查找无用图片
    • 删除重复资源
    • 压缩图片资源

      • 使用ImageOptim无损压缩图片
      • 使用TinyPNG有损压缩图片

        • TinyPNG非常好用强烈推荐
        • 使用的时候直接执行 tinypng *.png -k token 脚本即可
    • 奇技淫巧

      • 用LaunchScreen.storyboard替换启动图片
      • 本地大图片都使用webp
      • 资源按需加载,非必要资源都等到使用时再从服务端拉取
  • 编译选项优化

    • Optimization Level在release状态设置为Fastest,Smallest
    • Strip Debug Symbols During Copy在release状态设置为YES
    • Strip Linked Product在release状态设为YES
    • Make String Read-Only在release状态设为YES
    • Dead Code Stripping在release状态设为YES
    • Deployment PostProcessing在release状态设为YES
    • Symbols hidden by default在release状态设为YES
  • 可执行文件优化

    • 使用LinkMap分析库的使用情况
    • 三方库优化

      • 删除不使用的三方库
      • 功能用的少但是体积大的三方库可以考虑自己重写
      • 合并功能重复的三方库
    • 代码分析

      • 用AppCode进行代码扫描
      • 去掉无用的类及文件
      • 清理import
      • 去掉空方法
      • 去掉无用的log
      • 去掉无用的变量
      • 反正把能去掉的都去掉
    • 奇技淫巧

      • 将业务打包成动态库
      • 动态化。将一部分Native界面用Weex重写
      • 去除Swift代码,Swift的标准库是打包在安装包里的,一般都有10M+。然后苹果爸爸说等到Swift Runtime稳定之后会合并到iOS系统里,那时候使用Swift就不会显著增加包大小了
      • 在target->Build Settings->Other Link Flags里添加如下指令,会把TEXT字段的部分内容转移到RODATA字段,避免苹果对TEXT字段的审核限制。当然其实跟安装包瘦身好像没有什么关系,所以除非快不行了否则不建议操作 =。=
    -Wl,-rename_section,__TEXT,__cstring,__RODATA,__cstring
    -Wl,-rename_section,__TEXT,__gcc_except_tab,__RODATA,__gcc_except_tab
    -Wl,-rename_section,__TEXT,__const,__RODATA,__const
    -Wl,-rename_section,__TEXT,__objc_methname,__RODATA,__objc_methname
    -Wl,-rename_section,__TEXT,__objc_classname,__RODATA,__objc_classname
    -Wl,-rename_section,__TEXT,__objc_methtype,__RODATA,__objc_methtype
  • 跟着苹果爸爸走

    • App Thinning

      • 使用xcasset管理图片
    • 开启BitCode

iOS App 安装包瘦身指南相关推荐

  1. Android App安装包瘦身计划

    Android App安装包瘦身计划 Android App安装包体积优化: 理由, 指标和可以采用的方法. 本文内容归纳如下图: 为什么要安装包瘦身 安装包需要瘦身吗? 不需要吗? 安装包要瘦身的主 ...

  2. 京东商城iOS客户端安装包瘦身实践

    一.概述 随着业务的快速增加,商城app的大小也在迅速增加,一度超过了300M.安装包大小的不断增加对app下载成本,推广效率产生了比较大的影响.从2018年9月份我们对商城app开始了为期二期的专项 ...

  3. 贝壳找房APP安装包瘦身

    一.背景 在满足产品.UI要求的前提下,尽量减少安装包体积. 以customer插件为例: 插件大小为5MB, 其中1MB是dex,而bkbase占了dex的580KB: 3.1MB是图片. 减少re ...

  4. iOS安装包瘦身的那些事儿

    在我们提交安装包到App Store的时候,如果安装包过大,有可能会收到类似如下内容的一封邮件: 收到这封邮件的时候,意味着安装包在App Store上下载的时候,有的设备下载的安装包大小会超过100 ...

  5. Unity3D_NGUI_安卓APK安装包瘦身实践

    减包瘦身是个精细活.本文整理了0907版本操作过程,以备日后参考. 经过一番折腾,各位攻城狮的努力,美术设计师的支持,策划爷的理解,UI资源(图集.字体.单局外模型贴图)从45.4MB减少到24.5M ...

  6. iOS - ipa安装包大小优化

    在App Store上显示的下载大小和实际下载下来的大小,我们通过下表做一个对比: iPhone型号 系统 AppStore 显示大小 下载到设备大小 iPhone6 10.2.1 91.5MB 88 ...

  7. Unity3D游戏内存瘦身指南: UI优化是关键

    游戏占用的内存中,UI部分主要是贴图资源和字体资源.其中贴图是单张图片,而字体包括UIFont和TrueTypeFont(TTF). 资源占用内存大小,从Unity Profiler可看到许多细节. ...

  8. 我的Android进阶之旅------gt;Android APP终极瘦身指南

    首先声明,下面文字转载于: APK瘦身实践 http://www.jayfeng.com/2015/12/29/APK%E7%98%A6%E8%BA%AB%E5%AE%9E%E8%B7%B5/ APP ...

  9. Android APP终极瘦身指南

    前言 之前写了一篇<APK瘦身实践>侧重于实践和效果对比,后来受徐川老师点拨,建议改写成一篇更全面的瘦身终极杀招大全,深以为然,思考良久,新开一篇. 指南条例 第1条:使用一套资源 这是最 ...

最新文章

  1. Python执行pyinstaller打包生成的exe文件实战
  2. 修改2k自动登陆的脚本
  3. 号和管道符号(|)在不同场景下的使用方法
  4. spring java配置_Spring Java配置
  5. python爬虫好学不_python爬虫好学吗
  6. MAGENTO MOUDLE WEB FRONTEND
  7. Spring配置中的classpath:与classpath*:的区别研究
  8. GaussDB分布式Stream执行计划详解
  9. 横幅新年促销海报PSD模板,拯救年底节日忙
  10. 关注深圳电子商务企业的发展
  11. [转载] python更新numpy_Python numpy从1.6更新到1.8
  12. 将长方形木框拉成平行四边形_微课|人教版五年级数学上册6.1平行四边形的面积(P8690)...
  13. 计算机怎样双面打印,电脑双面打印机怎么打印双面_电脑如何设置自动双面打印-win7之家...
  14. ITU-R BT.2020
  15. 电机及计算机工程,伍斯特理工学院电机与计算机工程理学/工程学硕士研究生申请要求及申请材料要求清单...
  16. initialization on demand holder
  17. Android学习之RecyclerView带刺的玫瑰
  18. 使用ffmpeg调整图像大小
  19. Python爬取人民网夜读文案
  20. 前三周学习Python的心得与感受

热门文章

  1. 计算机突破图灵测试,人工智能巨大突破 计算机首次通过图灵测试
  2. 总价加激励费用合同计算
  3. php中文日期转成date类型,php怎么将含中文的日期转为时间戳
  4. org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No leas e on
  5. getsockopt套接口选项
  6. 新版qq新增的功能(屏幕录制 屏幕翻译 屏幕文字识别 屏幕截图)
  7. 讯搜 配置mysql_迅搜使用指南
  8. 约数之和 c语言,(c语法百题20)约数之和,约数之和
  9. 2019最新Android常用开源库总结(From:知乎)
  10. 卡耐基.梅隆教授兰迪.波许的最后一课经典稿