Zest is a command line tool that dynamically updates your iOS app icons.
The script generates app icons of different sizes and places them in the Zesty/processed/AppIcon.appiconset
directory. You can customize the text, prefix, and icon set to suit your needs, making it a versatile tool for managing your app icons.
The main script, processAppIcon.sh
, compiles app icons with dynamic text provided at runtime. It uses the ImageMagick library to generate app icons with the provided text, with options for prefixing. The text is placed at the bottom of the icon, allowing you to create unique and identifiable app icons for different versions or environments of your app.
Update your app icon with a pull request number, commit hash, version number, or more.
Set up Zest and run sh ./scripts/processAppIcon.sh -t "foo" -p "#" -s "sample"
to view a live demonstration. Works great with tools like Jetpack, Jenkins and GitHub Actions.
CLI access to the Imagemagick (imagemagick.org) library is required to run this script. See Imagemagick – Install from Source (imagemagick.org) for setup instructions.
Install Imagemagick via Homebrew (brew.sh):
brew install imagemagick
Run processAppIcon.sh
(located in the ./scripts
directory) to compile app icons. App icon assets will be generated with dynamic text, and will be output to Zesty/processed/AppIcon.appiconset
. To see an example output, run sh example.sh
from this directory.
All options are required when running the processAppIcon.sh
script:
-t
Text to render (string): This is the text you want to place at the bottom of the icon. It can be anything you like, such as a version number or environment name.-p
Text prefix (string): This is the prefix for the processed text. It helps you identify the icons generated by this script.-s
Source icon set (string): This is the set of raw icons you want to use as a base. The script will generate icons of different sizes based on this set.
- Process the
delta
icon set, appending the value of$GITHUB_PR_NUMBER
with a prefix of#
sh processAppIcon.sh -t $GITHUB_PR_NUMBER -p "#" -s "delta"
- Process the
omega
icon set, appending the value of$GIT_SHA
with a prefix of#
sh processAppIcon.sh -t $GIT_SHA -p "#" -s "omega"
- Process the
beta
icon set, appending the value of$PACKAGE_VERSION
with a prefix ofv
sh processAppIcon.sh -t $PACKAGE_VERSION -p "v" -s "beta"
Contributions to enhance Zest are always welcome. If you have ideas for improvements or have found a bug, please open an issue. If you'd like to contribute directly, feel free to fork the repository and submit a pull request. Your help in improving this tool is always appreciated.