美文网首页归藏
iOS 脚本查找项目中无用资源脚本原理

iOS 脚本查找项目中无用资源脚本原理

作者: 踩坑小分队 | 来源:发表于2020-08-04 15:56 被阅读0次

    脚本使用

    FindUnUseResource.py
    脚本地址

    python3 FindUnUseResource.py -f .png,.jpg,.jpeg,.mp3,.m4a -p  /Users/a58/Desktop/HaoJie -e .bundle,Assets.xcassets,Pods
    

    参数说明:
    -f 查找的资源类型,多个用逗号隔开
    -p 查找的项目路径
    -e 排除哪些路径,多个用逗号隔开

    检测结果:


    image.png

    脚本原理

    我们以图片资源为例:

    1、查找项目中所有图片名称

    一般我们的项目中的图片存储地大概这么几个地方
    bundle 、 主项目中 、 Assets.xcassets

    image.png

    脚本主要是查找Assets.xcassets主项目中,忽略bundle中的图片名称<因为bundle中的图片一般是别人封装好的,可能配合framework等用,你不知道里面的图片有没有真正的被用到>

    1.1、获取主项目中图片的名字
    主项目中的图片名字比较好获取,遍历项目中除了Assets.xcassets,Pods,.bundle的文件即可,查找到扩展名为png、jpg、jepg等文件保存下来即可

    ProjectPath/Resource/tabSelected.png --> tabSelected

    1.2、Assets.xcassets中图片名称的获取
    Assets.xcassets中的图片图片获取需要注意,实际文件图片名和Assets.xcassets中名字可能不一样,图片资源加到Assets.xcassets是可以修改名称的,实际使用的是Assets.xcassets中的名称

    image.png

    /Users/a58/Desktop/smallDemo/ImagesDemo001/ImagesDemo001/Assets.xcassets/weibo.imageset --> weibo

    2、遍历项目中的文件,搜索有没有出现图片名称

    通过观察,我们可以看到,图片的名称都是以字符串的形式进行使用的

    image.png
    所以我们拿着 "imageName去项目.h、.m、.xib、.storyboard、.swift中去找,匹配到相关的字符串我们认为该图片用到了
    除非碰到一个字符串开头和图片名称一样,检测不出来,其他的情况应该很少

    如果检测不到该字符串,那么认为该图片没有被用到

    其他的资源类似

    相关文章

      网友评论

        本文标题:iOS 脚本查找项目中无用资源脚本原理

        本文链接:https://www.haomeiwen.com/subject/axkrrktx.html