This project is a fastlane plugin. To get started with fastlane-plugin-appicon
, add it to your project by running:
fastlane add_plugin appicon
Please note that this plugin uses minimagick, which requires either GraphicsMagick or ImageMagick library. If you have neither, you can install either via Homebrew:
brew install graphicsmagick
or
brew install imagemagick
The default CLI for the mini_magick
gem is set to auto pick. It will first try to use GraphicsMagick
(if you have it installed) otherwise it will use ImageMagick
. If you want to be explicit about which CLI you use, set the minimagick_cli
option to graphicsmagick
or imagemagick
. Not specifying this option will set MiniMagick
to use auto which will choose what's available.
Generate required icon sizes and iconset from a master application icon.
Since many apps use a single 1024x1024 icon to produce all the required sizes from, why not automate the process and save lots of time?
Check out the example Fastfile
to see how to use this plugin. Try it by cloning the repo, running fastlane install_plugins
and bundle exec fastlane test
.
Just specify the source image using the appicon_image_file
. Optionally specify the devices using appicon_devices
and the destination path using appicon_path
.
We recommend storing the full-size picture at fastlane/metadata/app_icon.png
so it can be picked up by deliver, as well as this plugin.
If you want to use this plugin to generate a app icon for Messages(sticker) extension, set messages_extension
to true
and add messages
to the appicon_devices
.
lane :basic do
appicon(
appicon_devices: [:ipad, :iphone, :ios_marketing],
appicon_path: "MajorKey/Assets.xcassets"
)
end
lane :test1 do
appicon(appicon_image_file: 'spec/fixtures/Themoji.png',
appicon_devices: [:ipad, :iphone, :ios_marketing])
end
lane :test2 do
appicon(appicon_image_file: 'spec/fixtures/Themoji.png',
appicon_devices: [:ipad, :iphone, :ios_marketing, :watch, :watch_marketing])
end
lane :test3 do
# `appicon_image_file` defaults to "fastlane/metadata/app_icon.png"
appicon(
appicon_devices: [:iphone],
appicon_path: 'wwdcfamily/Images.xcassets' # output path
)
end
lane :test4 do
appicon(appicon_image_file: 'spec/fixtures/Themoji.png',
appicon_devices: [:macos])
end
lane :splash_screen do
appicon(
appicon_image_file: 'spec/fixtures/splash_screen.png',
appicon_devices: [:universal],
appicon_path: "ios/App/App/Assets.xcassets",
appicon_name: 'Splash.imageset'
)
end
lane :messages_extension do
appicon(
appicon_image_file: "fastlane/metadata/iMessageAppIcon.png",
appicon_devices: [:iphone, :ipad, :ios_marketing, :messages],
appicon_path: 'iMessageStickers/Stickers.xcassets',
messages_extension: true
)
end
# or
lane :android do
android_appicon(
appicon_image_file: 'spec/fixtures/Themoji.png',
appicon_icon_types: [:launcher],
appicon_path: 'app/res/mipmap'
)
android_appicon(
appicon_image_file: 'spec/fixtures/ThemojiNotification.png',
appicon_icon_types: [:notification],
appicon_path: 'app/res/drawable',
appicon_filename: 'ic_notification',
generate_rounded: true
)
android_appicon(
appicon_image_file: 'spec/fixtures/splash_base_image.png',
appicon_icon_types: [:splash_port, :splash_land],
appicon_path: 'app/res/drawable',
appicon_filename: 'splash'
)
end
To run both the tests, and code style validation, run
rake
To automatically fix many of the styling issues, use
rubocop -a
For any other issues and feedback about this plugin, please submit it to this repository.
If you have trouble using plugins, check out the Plugins Troubleshooting doc in the main fastlane
repo.
For more information about how the fastlane
plugin system works, check out the Plugins documentation.
fastlane
is the easiest way to automate building and releasing your iOS and Android apps. To learn more, check out fastlane.tools.