Github 传送门
简介
LLIconVersioning是一个脚本,可以自动创建带有调试信息的appIcon。在run script中的集成脚本,可以在每次build或archive时自动创建带有版本信息的图标,还可以自动管理构建号。
预览
1.0.0 is app version, 9 is build number, Debug is environment name.
我能用 LLIconVersioning 做什么?
这是一个可以帮助你管理图标的脚本,你可以更容易地看到应用程序版本信息。
并且它也可以自动管理build number,例如1增长成2,或者1.0.0增长成1.0.1,或者使用日期来设置你的build number,例如201808311200。
添加 LLIconVersioning 到你的项目中
在你的Mac上安装 ghostscript 和 ImageMagick,你可以通过brew来快速的安装:
brew install imagemagick和brew install ghostscript。在你的项目中新增一个
New Run Script Phase,并且填写LLIconVersion.sh的路径。如果你将LLIconVersion.sh放到根目录下,你可以填写$SRCROOT/LLIconVersion.sh,如果你将LLIconVersion.sh放到某个文件夹下,你需要填写$SRCROOT/your folder name/LLIconVersion.sh。
复制
LLIconVersion.sh到指定目录。在你想要archive或者安装app给测试前,运行
Build(快捷键 :command + B)。原因请查看Q&A。运行你的项目看看效果。
如果你对颜色或者字体不满意,可以在脚本中修改这些配置参数。
Q&A
Q1 : LLIconVersioning 和 IconOverlaying 有什么区别?
LLIconVersioning 是根据 IconOverlaying修改的, 但是 IconOverlaying 已经不再支持 Xcode 9 and iOS 11。
虽然 LLIconVersioning 是根据 IconOverlaying修改的,但是中心思想是不一样的。
LLIconVersioning 是修改你的project.pbxproj,然后将Debug环境的ASSETCATALOG_COMPILER_APPICON_NAME的值从appIcon设置成appIcon-Debug,这意味着你的app会使用 appIcon-Debug来创建debug环境的图标,使用appIcon创建release环境的图标。
IconOverlaying是在archive后修改你的ipa,他会修改.ipa中的png文件,但是ios11的app已经不在使用ipa中的png文件,而是直接使用assets中的appIcon来创建图标。
Q2 : LLIconVersioning 在build时都做了什么?
- 检查本地数据,判断是否需要更新图标。
- 检查是否在Mac上安装了必要的库。
- 复制
appIcon到appIcon-Debug,将app版本信息写到图片上。 - 修改Debug环境里的
ASSETCATALOG_COMPILER_APPICON_NAME值为appIcon-Debug。 - 自动修改build number。
Q3 : 为什么需要在使用前调用build?
LLIconVersioning 是动态的修改 project.pbxproj 和 assets,因为run script只能在ipa生成后调用,所以脚本无法修改当前的ipa中的assets资源,build相当于运行脚本去创建下一次ipa的数据,所以你在archive或者给测试安装app前,需要先build一下。
Q4 : 为什么会收到这样的错误?
当你手动删除assets中的appIcon-Debug时,你会收到一个这样的错误None of the input catalogs contained a matching stickers icon set or app icon set named "AppIcon-Debug"。
在 Build settings 中搜 asset catalog,双击并且修改值为appIcon,再运行一次。
Q5 : 为什么不好使?
检查你是否安装了ghostscript/ImageMagick,或者查看xcode中的调试信息,如果你还无法解决问题,打开一个 issue。
Q6 : 我可以修改哪些参数?
所有可调整的参数都写在了脚本文件的第一和第二部分,你可以阅读注释来进行修改。
联系
- 如果你需要帮助,打开一个issue。
- 如果你想问一个普遍的问题,打开一个issue。
- 如果你发现了一个bug,并能提供可靠的复制步骤,打开一个issue。
- 如果你有一个功能请求,打开一个issue。
- 如果你发现有什么不对或不喜欢的地方,就打开一个issue。
- 如果你有一些好主意或者一些需求,请发邮件(llworkinggroup@qq.com)给我。
- 如果你想贡献,提交一个pull request。
联系
- 可以发邮件到llworkinggroup1992@gmail.com
- 可以在twitter中@HdbLi发私信给我。
- 可以在简书中发私信给我。
许可
这段代码是根据 MIT license 的条款和条件发布的。




