iOS 优化--包瘦身

1.去除无用资源图片

  • LSUnusedResource
    • 存在误删的可能性,需要仔细确认
  • 无用的非图片资源,确认无误后删除

2.图片资源压缩

  • tinyPng
    • 推荐此种压缩方式
  • Build Setting-> Compress png files设置为YES
  • Build Setting-> Remove Text Medadata From PNG Files
    • 去除png资源的文本字符,如名称、作者、版权、注释等

3.podspec写法优化

  • resources正则匹配
    避免循环遍历多遍导入
  • source_files只依赖需要的类

4.按需加载资源

5.代码优化

  • 减少三方库依赖
  • 去除无用代码
    • 无用的类
    • 不会执行到的selector
    • 历史逻辑重构
    • 注释的代码
    • fui
    • fdupes

6.分类或功能性代码统一入口

7. 可执行文件优化

  • 去除符号信息

    • Strip Style:去除符号类型
      All Symbols
      Non-Global Symbols
      Debugging Symbols
    • Strip Debug Symbols During Copy:去除三方库的Debugging Symbols
  • Bitcode

    • 根据不同的CPU架构编译链接为不同的可执行文件
  • 编译器优化

1.Build Setting ->Asset Catalog Compiler -Options->Optimization指定space

  • 指定Optimization space会优化app大小

2.Build Setting ->Deployment ->Deployment Postprocessing和Build Setting ->Deployment ->Strip Linked Product指定为YES
可能会涉及到bitcode相关

3.Build Setting ->Linking ->Dead Code Stripping指定为YES
未被使用的代码做strip操作

4.Build Setting ->Optimization Level 切换为 Fastest,Smallest
Optimization Level控制被编译代码的执行速度和二进制文件的大小
None[-O0]:不优化.DEBUG时使用,可以保证调试时输出符合期望的结果
Fast[-O1]:编译器尝试减小代码文件的大小,减少执行时间.(大函数所需的编译时间和内存消耗会稍微增加)
Faster[-O2]:编译器执行所有不涉及时间空间交换的所有的支持的优化选项。在这种设置下,编译器不会进行循环展开、函数内联或寄存器重命名.和 Fast[-O1]项相比,此设置会增加编译时间和生成代码的性能
Fastest[-O3]: 在开启Fast[-O1]项支持的所有优化项的同时,开启函数内联和寄存器重命名选项.这个设置有可能会导致二进制文件变大
Fastest, Smallest[-Os]: 优化大小.这个设置开启了Fast[-O1]项中的所有不增加代码大小的优化选项,并会进一步的执行可以减小代码大小的优化

你可能感兴趣的:(iOS 优化--包瘦身)