8000 GitHub - tigerandy163com/Flash-LinkMap: 分析项目里未使用的方法
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

tigerandy163com/Flash-LinkMap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

原理:
从linkmap文件分析得出所有的方法,从app文件分析__DATA.__objc_selrefs得出所有使用的方法,然后做减法。

统计不准的原因:
因为 __DATA.__objc_selrefs 获得的使用方法列表存在缺陷:
1. 不会包含没有被代码直接调用的IBAction。而通过解析linkmap不能识别哪些是通过xib拖入的属性或方法,

2. 通过runtime动态调用的方法无法统计到,比如通过类名和方法名的字符串进行调用。

3. 通过performSelector调用的方法   , 通过target:action:方式添加方法,也算使用了

4. 如果实现了系统类的代理如UITableViewDelegate而没有显示代码调用这些代理方法的,无法统计到。

5. 如果多个类里有2个相同方法名的,那么会合并为一条记录。导致,其中一个类使用了该方法,而另一个未使用却被认为使用了。

6. “孤岛类“,比如A类调用了B类的一堆方法,并且B类只被A类单独调用,当A类并未被使用,则可以将B类成为“孤岛类”,
	此时只能统计出A类未被使用的方法,但B类的方法仍然被认为是使用的了。

使用方法:
1.将项目编译输出的linkmap文件命名为 LinkMap.txt 

2.设置 ignores.plist 黑名单列表(支持全匹配,前缀匹配 Pre*,后缀匹配 *Suf) ,可选

3.设置 whitelist.plist 白名单列表(支持全匹配,前缀匹配 Pre*,后缀匹配 *Suf), 有白名单存在时只统计白名单里,自动忽略黑名单,可选

4.将LinkMap.txt ,ignores.plist, whitelist.plist 放到一个文件下

5.打开软件,指定到该文件夹

注意:
如果要通过此软件的分析结果去删除代码,请务必在xcode里全局搜索加以确认后再删除!!!

About

分析项目里未使用的方法

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0