zoukankan      html  css  js  c++  java
  • iOS App 安装包瘦身指南

    摘要: 以下列出了安装包瘦身的无脑执行流程,其中“奇技淫巧”部分为选做题 资源优化 删除无用图片 使用LSUnusedResources查找无用图片 删除重复资源 压缩图片资源 使用ImageOptim无损压缩图片 使用TinyPNG有损压缩图片 TinyPNG非常好用强烈推荐 使用的时候直接执行 tinypng *.

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

    • 资源优化
      • 删除无用图片
      • 删除重复资源
      • 压缩图片资源
        • 使用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
    本文为云栖社区原创内容,未经允许不得转载,如需转载请发送邮件至yqeditor@list.alibaba-inc.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 相关阅读:
    Android中onBackPressed()的使用
    Python初次学习
    svn Mac下面无法更新png
    UIView的layoutSubviews和drawRect
    "_deflate", referenced from: -[NSData(NSDataAdditions) gzipDeflate] in NSDataAdditions.o
    Error12
    pods安装
    xib为view添加边框
    这些机型将被淘汰
    Development cannot be enabled while your device is locked.
  • 原文地址:https://www.cnblogs.com/jzy996492849/p/7737136.html
Copyright © 2011-2022 走看看