搜索
您的当前位置:首页正文

XcodeImageCleanTool - 清理iOS项目图片资

来源:知库网

目录

概述

XcodeImageCleanTool是一款清理Xcode项目中未使用,重复和相似的图片资源的脚本工具,通过网页图形界面进行操作。

安装环境

用setup.py安装依赖插件的时候可能会因为网络原因导致部分插件一直下载不下来,比如Pillow,这个时候可以先用pip安装相关依赖,或去官网下载相应的whl文件安装在本地,再运行setup.py。如果其他库也有这个问题都可以用这个办法解决。

安装说明

下载zip文件,解压进入dist文件夹,解压压缩文件,终端cd进入解压后的文件夹路径,输入命令python2 setup.py installpython setup.py install,成功后输入python2 -m xcode_imagecleantoolpython -m xcode_imagecleantool即可运行。

脚本路径 启动成功

使用说明

网页界面

项目的绝对路径(必填项):需要搜索的工程所在的路径,如下图。路径不能包含空格,下同。

项目路径

图片资源路径(选填):如果只需要搜索某个具体路径下的图片资源在整个工程中的应用,而不是全工程的图片,可以填写需要搜索的图片资源路径。

忽略路径(选填):不想把工程中引入的第三方库等的图片资源也纳入搜索范围的话,可以填写忽略路径。可添加多个,用英文逗号隔开。

搜索完成后会显示相应的图片及路径。路径可能会有多个,因为在查找相似图片时会把@2x,@3x等默认为一张。点击路径可以直接用预览打开查看。如果图片没有显示,可能因为是白色,与背景色重叠,无法分辨。
可以删除选中图片,导出搜索结果results.txt到dist/XcodeImageCleanTool-1.0/xcode_imagecleantool路径下。

搜索结果

注意事项

  • 如果没有把framework,.a库或Bundle的路径设置为忽略路径,搜索结果可能不准确,因为能拿到它们的图片资源,但是只暴露了头文件,所以无法判断图片是否有使用过。
  • 删除图片要确认无误之后再删除。因为有的情况是搜索不到的,比如图片名称不是写死的字符串而是动态拼接的。
  • 使用删除功能删除图片后,如果图片是Assets.xcassets里的,会有一个空白的占位符停留在工程里,需要手动删除。
空白Assets资源
  • 搜索未使用图片的时间会较长,请耐心等待。

已知问题

  • 用safari打开网页时,按钮有时需要点击两次才能执行相关动作。

待优化

  • 提升搜索效率。
  • 点击图片地址直接进入Finder显示资源路径。

实现原理

  1. 首先查找路径下的所有后缀为 '.png', 'jpg', 'jpeg', 'gif' 的图片资源,忽略AppIcon和LaunchImage等文件夹下的图片。
  2. 计算图片的dHash值。(dHash的相关文章可以参考)
  3. 具有相同dHash值,并且名称相同的图片为重复图片。
  4. 先把@2x,@3x的图片合成为一张图片(同名且路径相同),之后如果存在dHash值相同的图片,则为相似图片。
  5. 遍历工程下所有后缀为'.h', '.m', '.swift', '.mm', '.cpp', '.xib', '.storyboard', '.plist', '.html', '.css'的文件,搜索是否有"图片名称""图片名称.后缀"的代码,如果有则图片已使用。

其他

Top