如果给一个包体给你,里面有设置好的一些icon,但是你发现需要换全套icon,正常的思维是让美术重新出一套图
那其实我们可以用shell脚本直接解决这个问题。接下来我们来学习怎么用Shell来替换所有icon,生成尺寸一样的一套icon
第一步:
首先我们需要搞明白info.plist里面关于icon的设置项是怎么样的,我们将与icon设置无关的都删除掉:
可以看到与icon相关的设置分别有这几项,由于层级关系,其实是这样的三项:
CFBundleIcons:CFBundlePRimaryIcon:CFBundleIconFiles
CFBundleIconFiles
CFBundleIcons~ipad:CFBundlePrimaryIcon:CFBundleIconFiles
稍后我们会用一个数组将它存储起来。
其实iOS就是用这个info设置表去搜寻包内的icon,但是搞明白这其中的关系我们就可以开始搞了~
第二步:
我们建立这样的文件夹,并且按照其命名规范好,并且放置在config里面的待替换的icon需要512的尺寸
第三步:
我们对设置项目遍历,并且用一个数组装载它:
这一步是将这些设置项遍历一遍,并且装在在iconTempName这个数组内,这个时候,数组应该是如下,即所有设置项的结合
第四步:
判断icon的有效性,总体的思路就是,有些设置项设置得不合法,例如没有加.png后缀等等,并且需要添加一些@2x,~ipad的后缀,但是需要注意:
我们需要对原来的icon判断是否存在这个@2x的才添加并不是统统都添加,用 if[ -f ] 这个命令即可
规范好icon命名之后我们用一个iconName来装载,可以看到这个数组是规范的命令:
相对于前面那个就规范多了
第五步:
将这个规范的icon数组遍历,并且取出其中表示的width和height,分别放在两个一致的数组里面:
可以看到的是这样的数组内容:
第六步:
到这里我们知道,其实分别:iconName数组,width数组,height数组都是“高度一致”的,我们新建两个文件夹,一个是临时的文件夹,装的是我们将config里面
需要替换的资源Icon.png命名成iconName数组里面对应的icon,这个时候应该都是512尺寸,最后一步我们只要将这些512对应地替换成width和height数组对应的尺寸即可
因为是高度一致的,相当好绑定来遍历:
最后我们就可以得到这样的结果,如果想在原来的文件夹,可以将原来的icon删除并且将这些直接导在icons即可。
新闻热点
疑难解答