iOS项目冗余资源扫描脚本
来源:互联网 发布:电脑无法登陆淘宝网 编辑:程序博客网 时间:2024/06/06 15:46
iOS项目冗余资源扫描脚本
随着iOS项目的版本不断迭代,app中冗余文件会越来越多,app size也持续增加,是时候需要对app冗余资源进行检测,对app进行瘦身。
使用方法:
1. 运行环境为mac, 首先准备好工程源代码;
2. 新建check.sh,将下面的代码粘贴到check.sh中并且保存;(可将txt文件改成sh后缀)
#!/bin/sh ##### several cases that the scripts does not work:##### 1) there is space or slash in the resources file, such as "aaa .png" 资源文件名中含有空格或者/##### 2) reference resources in commented code 资源引用代码被注释了##### 3) you need to manually checked the resources one by one in the result 对于脚本检查结果,最好人工检查一遍##### 4) you can add some other types more than png, jpg, gif, wav, m4a 如果需要检查其他资源,请自行修改脚本;##### 5)默认文件后缀都是如@2x.png格式,如果后缀格式不同,请自行修改脚本; #### set parameters:PrjPath为项目工程所在目录,包含.m .xib文件;ResPath为被扫描的资源文件目录,包含.png .wav#### xcodeprojPath为工程xcodeproj位置PrjPath=/Users/.......ResPath=/Users/.......xcodeprojPath=/Users/....../******.xcodeproj if [ -f ~/Desktop/resource_san_result.txt ];then rm -f ~/Desktop/resource_san_result.txtfi cd $PrjPathfiles=$(find . -name "*.m" -o -name "*.xib" -o -name "*.mm" -o -name "*.plist") cd $ResPathfor png in $(find . -name "*.png" -o -name "*.jpg" -o -name "*.gif" -o -name "*.wav" -o -name "*.m4a")do basename='basename/'$png basename=${basename##*/} # echo $basename if [ "${basename##*.}" == "png" ];then echo $basename|grep -q @2x.png if [ $? -eq 0 ];then name=${basename%%@2x.png} else echo $basename|grep -q @3x.png if [ $? -eq 0 ];then name=${basename%%@3x.png} else name=${basename%.png} fi fi elif [ "${basename##*.}" == "jpg" ];then echo $basename|grep -q @2x.jpg if [ $? -eq 0 ];then name=${basename%%@2x.jpg} else echo $basename|grep -q @3x.jpg if [ $? -eq 0 ];then name=${basename%%@3x.jpg} else name=${basename%%.jpg} fi fi elif [ "${basename##*.}" == "gif" ];then echo $basename|grep -q @2x.gif if [ $? -eq 0 ];then name=${basename%%@2x.gif} else echo $basename|grep -q @3x.gif if [ $? -eq 0 ];then name=${basename%%@3x.gif} else name=${basename%%.gif} fi fi elif [ "${basename##*.}" == "wav" ];then name=${basename%%.wav} elif [ "${basename##*.}" == "m4a" ]; then name=${basename%%.m4a} else name='' fi if [ ${#name} -gt 0 ];then # # name=${name%%[0-9]*} cd $PrjPath if grep -q $name $files;then echo "$png" is used else cd $xcodeprojPath if grep -q $name project.pbxproj;then echo "$png" is not used >> ~/Desktop/resource_san_result.txt else echo "$png" is not packaged fi fi else echo name is empty fi done if [ -f ~/Desktop/resource_san_result.txt ]; then echo ***************the end of scan. Please see result from resource_san_result.txtelse echo ***************the end of scan, everything is OKfi
3. 设置脚本中参数:
PrjPath为项目工程所在目录,包含.m .xib文件;
ResPath为被扫描的资源文件目录,包含.png .wav;
xcodeprojPath为工程xcodeproj位置;
例如:
PrjPath=/Users/zhuquan/Documents/secret-develop/ProjectResPath=/Users/zhuquan/Documents/secret-develop/Project/Phoenix/ResxcodeprojPath=/Users/zhuquan/Documents/secret-develop/Project/Phoenix.xcodeproj
4. 执行脚本check.sh;
5. 最后会出检测结果,检测出来的冗余资源最好人工检查一遍。
[zhuquandeMacBook-Pro:Desktop zhuquan$ ./check.sh./1.png is used./2.png is used./3.png is used./4.png is used./5.png is used./ajax-loader.gif is not packaged./运动记录.png is not packaged***************the end of scan, everything is OK
使用总结:
脚本使用过程中有一些注意事项如下,
1. 如果资源文件名中含有空格或者/,比如”aaa .png”,该资源无法正常检测;
2. 如果资源文件在代码中被引用了,但是该引用代码被注释掉了,也无法成功检测;
3. 对于最终脚本输出的脚本检查结果,最好人工检查一遍,有些资源可能并非是冗余资源;
4. 目前脚本中支持的资源类型有.png .jpg .gif .wav .m4a,如果需要检查其他资源,请自行修改脚本。
0 0
- iOS项目冗余资源扫描脚本
- apk清除冗余资源
- AssetBundle资源冗余检测
- IOS项目资源
- unity-AssetBundle资源冗余检测
- 筛选冗余的图片资源
- 删除Android工程中冗余资源
- Unity AssetBundle 冗余检测与资源分析
- iOS项目的静态代码扫描之OClint安装
- iOS项目的静态代码扫描之OClint使用
- 使用FB Infer对IOS项目进行静态代码扫描
- 使用OClint进行iOS项目的静态代码扫描
- 打理一下IOS项目中的图片资源
- 清理 iOS 项目不用的图片资源
- 清理 iOS 项目不用的图片资源
- FastCopy数据备份脚本(同步)(冗余)
- 清理Ubuntu冗余内核的脚本
- 一些开源的IOS项目(wifi扫描 条形码扫描 tcp/ip 等等)
- Java面向对象及关键词(上)
- poj2362
- 机器学习研究会每周精华0807
- websocket
- HDU5804--Price List
- iOS项目冗余资源扫描脚本
- 彻底学会使用epoll(一)——ET模式实现分析
- Scala学习第十一弹 字符串
- 10014---Spring中如何配置Hibernate事务
- Xcode界面编辑器 could not insert new outlet connection
- storm安装
- 欧几里德算法与扩展(中国剩余定理)
- 最小生成树之kruskal算法
- CSS快速学习3:文本、背景等属性