可执行文件优化
- 使用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