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]项中的所有不增加代码大小的优化选项,并会进一步的执行可以减小代码大小的优化

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 记录一次安装包大小优化的实践。维持安装包体积是一个持续的过程,建立预警机制,监控每个版本的体积大小。 资源文件优化...
    bluedaquiri阅读 2,369评论 0 4
  • 安装包组成: 谈到 App 瘦身,最直接的想法莫过于分析一个安装包内部结构,了解其每一部分的来源。解压一个 ipa...
    孔雨露阅读 3,431评论 1 7
  • iOS 安装包瘦身 一. 安装包组成 谈到 App 瘦身,最直接的想法莫过于分析一个安装包内部结构,了解其每一部分...
    iYeso阅读 1,377评论 5 9
  • Bitcode 什么是Bitcode?Bitcode是被编译程序的一种中间形式的代码。包含Bitcode并上传到A...
    帅驼驼阅读 1,956评论 1 3
  • 下面是自己在日常App优化过程中,使用过的方案,这里做一个记录。 1.Apple官方优化 App Thinning...
    苦笑男神阅读 1,179评论 2 2