Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

badge - add a badge to your tvOS/iOS/Android app icon

Twitter: @DanielGri License Gem fastlane Plugin Badge


This gem helps to add a badge to your tvOS/iOS/Android app icon.

Yes that's it. It's built to easily integrate with fastlane.

assets/icon175x175.png assets/icon175x175_fitrack.png


assets/icon175x175_light_badged.png assets/icon175x175_fitrack_light_badged.png

badge --dark

assets/icon175x175_dark_badged.png assets/icon175x175_fitrack_dark_badged.png

badge --alpha

assets/icon175x175_alpha_light_badged.png assets/icon175x175_fitrack_alpha_light_badged.png

badge --shield "1.2-2031-orange" --no_badge

assets/icon175x175_shield_1.2-2031-orange.png assets/icon175x175_fitrack_shield_1.2-2031-orange.png

badge --shield "1.2-2031-orange" --no_badge --shield_no_resize

assets/icon175x175_shield_1.2-2031-orange-no-resize.png assets/icon175x175_fitrack_shield_1.2-2031-orange-no-resize.png

badge --shield "Version-0.0.3-blue" --dark

assets/icon175x175_shield_Version-0.0.3-blue.png assets/icon175x175_fitrack_shield_Version-0.0.3-blue.png

badge --shield "Version-0.0.3-blue" --dark --shield_geometry "+0+25%" --shield_scale 0.75

assets/icon175x175_shield_Version-0.0.3-blue-geo-scale.png assets/icon175x175_fitrack_shield_Version-0.0.3-blue-geo-scale.png

badge --grayscale --shield "Version-0.0.3-blue" --dark

assets/icon175x175_grayscale.png assets/icon175x175_fitrack_grayscale.png


Install the gem

sudo gem install badge


Call badge in your projects root folder


It will search all subfolders for your asset catalog app icon set and add the badge to the icons.

You can also run badge on your Android, tvOS icons, or any other iconset. You have to use the --glob "/**/*.appiconset/*.{png,PNG}" parameter to adjust where to find your icons.

⚠️ Note that you have to use a / in the beginning of the custom path, even if you're not starting from the root path, f.ex. if your icons are in res/ios/beta/Appicon/*, your badge call would be badge --glob "/res/ios/beta/Appicon/*"

The keep the alpha channel in the icons use --alpha_channel

Be careful, it actually overwrites the icon files.

Here is the dark option (also available in combination with --alpha):

badge --dark

You can also use your custom overlay/badge image

badge --custom "path_to/custom_badge.png"

Add a shield at the top of your icon for all possibilites head over to: You just have to add the string of shield (copied from the URL)

badge --shield "Version-0.0.3-blue"

Sometimes the response from takes a long time and can timeout. You can adjust the timeout to with --shield_io_timeout 10 accordingly.

--shield_gravity North changes the postion of the shield on the icon. Choices include: NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast.

--shield_parameters "colorA=abcdef&style=flat" changes the parameters of the shield image. It uses a string of key-value pairs separated by ampersand as specified on, eg: colorA=abcdef&style=flat.

In version 0.4.0 the default behavior of the shield graphic has been changed. The shield graphic will always be resized to aspect fill the icon instead of just adding the shield on the icon. To disable the new behaviour use --shield_no_resize which now only puts the shield on the icon again.

Add --no_badge as an option to hide the beta badge completely if you just want to add a shield.

Use badge --help to get list all possible parameters.

Usage with fastlane

Please use the fastlane plugin: It has the same parameters as this gem.

lane :appstore do

  add_badge(dark: true) #or
  #add_badge(alpha: true) #or
  #add_badge(custom: "/Users/HazA/Desktop/badge.png") #or
  #add_badge(shield: "Version-0.0.3-blue", no_badge: true)

  sh "./"


Common problems

If Jenkins has problems finding imagemagick on your mac add following env variable to your job:


Make sure you have imagemagick installed on your machine e.g. for Mac its:

brew install imagemagick


sudo gem uninstall badge


@ThomasMirnig @KrauseFx fastlane


This project is licensed under the terms of the MIT license. See the LICENSE file.