iOS App Thinning

图片资源删减

使用工具查找未引用资源

LSUnusedResources 比之前的 Unused 好用,对于大型工程来说 Unused 效率太低

压缩 PNG

按照文件大小排列,看看是否有上百 K 的 PNG 图片,使用工具进行压缩,可以使用 JPG 的不要用 PNG

大图片不要使用 PNG,用 JPG 替换

删除掉 1x 图片

代码精简

查找无用的 OC 类

维护时间较长的代码,可能会出现废弃的类出现在代码中,这种无用的文件比较难找,可以通过 linkMap 文件来分析。

设置 Project -> Build Settings -> Write Link Map File 为 YES,并设置 Path to Link Map File,build 完后找到 linkMap 文件,来分析该文件,该文件默认位于

~/Library/Developer/Xcode/DerivedData/XXX-eumsvrzbvgfofvbfsoqokmjprvuh/Build/Intermediates/XXX.build/Debug-iphoneos/XXX.build/

该文件的介绍,可以参考下 这里

在 bang 同学的脚本基础上作了改进,原脚本支持第三方库大小统计,在该脚本的基础上,添加了分析 objc-class-ref 段,查找未引用的类的方法,代码点击这里

查找无用的函数

无用函数,可能是暂时无用,或者不确定是否以后会用到的,可以通过工具来查找无用函数,推荐工具点这里

或者按照查找无用 OC 类的方式写脚本分析 selrefs 段

编译选项优化

Strip Link Product 是否为 YES
Make Strings Read-Only 是否 为YES
去掉异常支持,Enable C++ Exceptions 和 Enable Objective-C Exceptions 设为 NO,并且Other C Flags 添加 -fno-exceptions

iOS 9 以上的 App Thnning

Slicing 仅向设备传送与之相关的资源

On-Demand Resources(ODR) 不重要的资源不下载,使用的时候下载

Bitcode 更新应用时,仅下载更新的内容。

请我喝汽水儿