性能优化iOS性能优化专题

iOS 应用包(ipa)瘦身之LinkMap与LSUnusedR

2019-12-25  本文已影响0人  小白学金融

ipa瘦身,我们主要从2个方面入手:

一、是工程中所有文件占用空间的大小;发现异常文件,需要进行优化处理

二、是未使用图片的清理。

针对第一种情况,我们可以通过link Map 文件,可以看到所有文件的缩减情况,

查看link Map 文件的工具,可以通过这个的链接去找:https://github.com/huanxsd/LinkMap

针对第二种情况,我们可以通过LSUnusedResources 这个工具来检测工程中未使用的图片。

LSUnusedResources 工具可以通过这个链接获得, https://github.com/tinymind/LSUnusedResources

下面以图文的形式详细描述这2个工具的事情情况。

LinkMap 工具使用

何如获得LinkMap 文件?

使用方式:

    1.在XCode中开启编译选项Write Link Map File 

    XCode -> Project -> Build Settings ->把Write Link Map File选项设为yes,并指定好linkMap的存储位置 

    2.工程编译完成后,在编译目录里找到Link Map文件(txt类型) 

    默认的文件地址:~/Library/Developer/Xcode/DerivedData/XXX-xxxxxxxxxxxxx/Build/Intermediates/XXX.build/Debug-iphoneos/XXX.build/ 

    3.回到本应用,点击“选择文件”,打开Link Map文件 

    4.点击“开始”,解析Link Map文件 

    5.点击“输出文件”,得到解析后的Link Map文件 

    6. *输入目标文件的关键字(例如:libIM),然后点击“开始”。实现搜索功能 

    7. *勾选“分组解析”,然后点击“开始”。实现对不同库的目标文件进行分组

~/Library/Developer/Xcode/DerivedData/XCTG3-gvueobenusdvggfpombsqchnvkfe/Build/Intermediates.noindex/XCTG3.build/Debug-iphonesimulator/XCTG3.build

linkMap的文件地址

linkMap文件存储的地方

从GitHub上面下载下link Map这个工程,跑一起来,在Mac端得到如下可视化界面。可以把我们上面得到linkMap文件(.txt)复制一份到桌面上,再下面选择文件的时候,加进去

将上面文件路径的linkMap复制一份出来 选择好文件后,点击开始

选择好文件后,点击开始,我们就可以看到工程中下面这些文件占了多少空间,下面的参数可以为我们提供代码优化思路与方向。

linkMap 工具视图

LSUnusedResources 工具使用

从GitHub上面下载下LSUnusedResources这个工程,跑一起来,在Mac端得到如下可视化界面。我们把将要检测的工程添加进去,搜索就可以了。这里还有其他的一些功能。可以根据读者自己的实际需要去再探索了。

这里需要特别提醒是:下面未使用的图片是机器检测出来的,单不是完全可信赖的哈。最好自己再在这些图片中,进行一下二次筛选。因为我们会遇到一下几种情况,是不能检测出来的。

举两个例子:

第一种:一些被序列化的图片,在工程中很有可能是这样被引用的

UIImage*image=[UIImage imageNamed:[NSString stringWithFormat:@"TabImage_index%d.png",i]];

如此这样会被检测为无用图片.

解决办法:

1.可以手动确认是否真是废弃切图.

2.勾选Ignore similar name 选项进行过滤

第二种:在工程的Assets.xcassets文件中直接修改了图片的名字,这样会导致图片本身的名字和在工程中引入的名字不一致,导致检测结果有误.


LSUnusedResources 工具视图 LSUnusedResources 工具视图

掘金中的 daisyduan 也是我啊 ,😝

上一篇下一篇

猜你喜欢

热点阅读