-
Notifications
You must be signed in to change notification settings - Fork 0
tigerandy163com/Flash-LinkMap
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 0
No packages published