1、前言
上一篇讲到 shell技巧2 - 图片旋转缩放转换格式等,而平时iOS开发中,Xcode中Assets.xcassets
的AppIcon
需要设计师或开发者自行放置对应尺寸的图标,虽然我经常使用macOS下的 Prepo
应用生成多尺寸的图标,但是依然需要一张一张的放置到Xcode中,并且步骤非常不智能化,部分图标需要人工对应位置放置。如果通过使用 sips
命令,其实可以自动生成对应尺寸的图片,就可以灵活和自动化的批量生成AppIcon的全部图标,绝对的方便和效率!说到就马上实践吧!
2、AppIcon 要求
平时,我们的应用的图标,都会在 Assets.xcassets 的AppIcon 设置,对于 iOS 来说,需要配置如下图标:
其中,因为App如果只支持iOS7以上,1x 的设备也不需要支持了,那么大概导出需要如下的尺寸:
pt | 像素密度(scale) | 尺寸(px) | 用途 | 支持系统版本 |
---|---|---|---|---|
20pt | 2x | 40*40 | iPhone Notificafion | iOS 7-12 |
20pt | 3x | 60*60 | iPhone Notificafion | iOS 7-12 |
29pt | 2x | 58*58 | iPhone Spotlight/Settings | iOS 5-6/5-12 |
29pt | 3x | 87*87 | iPhone Spotlight/Settings | iOS 5-6/5-12 |
40pt | 2x | 80*80 | iPhone Spotlight | iOS 7-12 |
40pt | 3x | 120*120 | iPhone Spotlight | iOS 7-12 |
60pt | 2x | 120*120 | iPhone App | iOS 7-12 |
60pt | 3x | 180*180 | iPhone App | iOS 7-12 |
20pt | 2x | 40*40 | iPad Notificafion | iOS 7-12 |
29pt | 2x | 58*58 | iPad Settings | iOS 5-12 |
40pt | 2x | 80*80 | iPad Spotlight | iOS 7-12 |
76pt | 2x | 152*152 | iPad App | iOS 7-12 |
83.5pt | 2x | 167*167 | iPad Pro App | iOS 9-12 |
1024pt | 1x | 1024*1024 | App Store | iOS 7-12 |
从上面表格可以看出,这些尺寸还是有一些重复的,所以导出尺寸时,其实没有那么多的啊,因为如果相同尺寸,可以使用同一张图片,从而减少包的体积啊!
3、shell 编程
通过使用 sips
命令进行图片处理,这里简单的写一下iOS App图标生成,apple watch 或 macOS app的图标生成的示例,希望大家能举一反三,这都是授鱼不如授渔!
先说一下操作步骤:
1.在终端执行shell脚本:
1 | sh /Users/HTC/Desktop/make_iOSAppIcon.sh |
2.然后拖拽1024图片路径到终端:
1 | ================================================ |
3.执行成功:
1 | ------- start processing ------- |
生成的图标和json文件:
4.然后找到输出的文件夹(默认是在填写的图片的同级目录),复制到Xcode项目中 Project/Assets.xcassets/AppIcon.appiconset/
即可。(如果还想省略这一步操作,也可以直接将生成的输出到项目的目录中,这步就交给读者需要自行添加啊)
5.打开Xcode,就能看到图片已经自动显示好!
这里说一下大概的思路,其实也不难,首先判断输出的路径,如果不是目录
、不存在的目录的文件
、格式不符合的图片
,就可以图片处理,否则提示重新输入图片路径。然后创建图片同级的文件夹用于保存生成的图标和配置的json文件,由于 “1024”图片最大,所以,先转成png,然后从大到小,一张一张剪切,另外,需要注意,1024如果是png,因为有透明度的话上传到AppStore是不成功的,所以,这里最后转换1024图片格式为jpg,这样保证万无一失。其它图标都是png,也不用切成圆角,因为苹果最终显示时系统自动切成图角。
总结一下好处:
- 方便快捷,不用人为关心
- 尺寸相同的图片只保留一张,减少包体积
- 1024图片为jpg,万无一失
4、源代码
具体的代码,也可参考我的Github代码:
1 | !/bin/bash |
5、总结
通过 ship 命令和 shell脚本和前面几篇技巧,大家应该能感受到shell脚本编程的魅力,希望大家能举一反三,授鱼不如授渔!生活工作中结合 sehll 脚本,提高效率和自动化,珍爱时间不是梦!
其实,只要用命令有终端的地方,都是可以用shell脚本!后续有更多技巧,还会继续给大家分享,期待吧~
参考
- shell技巧2 - 图片旋转缩放转换格式等 | iHTCboy’s blog
- 利器: Mac自带的图片工具Sips
- sips MAN page Man Page - macOS - SS64.com
- 使用sips命令自动缩减图片尺寸
- shell技巧1 - 生成ipa文件 | iHTCboy’s blog
- 如有疑问,欢迎在评论区一起讨论!
- 如有不正确的地方,欢迎指导!
> 注:本文首发于 [iHTCboy's blog](https://iHTCboy.com),如若转载,请注来源