iOS 优化--包瘦身
2022-02-14 本文已影响0人
yan0_0
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.代码优化
6.分类或功能性代码统一入口
7. 可执行文件优化
-
去除符号信息
- Strip Style:去除符号类型
All Symbols
Non-Global Symbols
Debugging Symbols - Strip Debug Symbols During Copy:去除三方库的Debugging Symbols
- Strip Style:去除符号类型
-
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]项中的所有不增加代码大小的优化选项,并会进一步的执行可以减小代码大小的优化