App安装包是由资源和可执行文件两部分组成,资源文件暂且不谈,这段时间接到领导任务要对可执行文件进行瘦身,记录一下心得,希望对其他人有帮助。

了解你的各个文件的大小:

首先需要了解linkmap是什么?LinkMap文件是Xcode产生可执行文件的同时生成的链接信息,用来描述可执行文件的构造成分,包括代码段(__TEXT)和数据段(__DATA)的分布情况。比如说可执行文件的构成是怎样,里面的内容都是些什么。

默认xcode在debug下是不生成linkmap文件的,所以我们首先要设置在debug模式下开启生成linkmap,在build setting中搜索link map,设置write link map file为YES,再次运行可以可以在 path to link map file中找到对应生成的text文件。默认的文件地址:~/Library/Developer/Xcode/DerivedData/XXX-xxxxxxxxxxxxx/Build/Intermediates/XXX.build/Debug-iphoneos/XXX.build/其中项目名称后面的随机字符串可能不一致。

给大家介绍一个mac程序,附上链接: https://github.com/huanxsd/LinkMap 

直接运行代码就可以得到如图所示的一个图形化界面工具,我们通过这个工具可以直观的看到那些文件占用的包的大小。

 

ios可执行文件是什么 苹果的可执行文件_iOS

重复代码

第一种工具:PMD

先从官网下载pmd工具包 https://sourceforge.net/projects/pmd/files/pmd/ 并解压cd进入其bin目录,执行./run.sh cpd --language ObjectiveC --minimum-tokens 120 --files /Users/xxx/Documents/项目目录
ps:指定输出格式

./run.sh cpd  --language ObjectiveC --minimum-tokens 120 --format csv_with_linecount_per_file  --files /Users/xxx/Documents/项目目录 > codeCheck.csv

使用./run.sh cpdgui启用gui界面工具

详细参数用法可参考官网教程:https://pmd.sourceforge.io/pmd-5.5.1/usage/cpd-usage.html

第二种工具:APPCode

1,用fui命令行查找不用的类,无用的import:
安装 fui 工具 在终端中执行命令:
sudo gem install fui -n /usr/local/bin
到工程目录下,执行 fui find 命令即可

fui链接:https://github.com/dblock/fui也可以通过githud下载;

2,可借助工具APPCode,删除不用的或者重复的函数。

AppCode提供了非常强大的代码静态检查工具,使用Inspect Code,可以找到很多代码优化的地方。大家可以自行找资源下载,说起来,APPCode是可以充当一个开发工具的,不过在这里我只用了它的代码检测功能。

打开菜单-code-选择InspectCode
优化项目的时候,可以使用Appcode分析功能,即Inspection功能。

当然APPCode的强大之处还不止这些,感兴趣的童鞋可以自行查阅。