Automatic icon resizing for Cordova. Create an icon in the root folder of your Cordova project and use cordova-icon to automatically resize and copy it for all the platforms your project supports (currenty works with iOS, Android, Windows 10 and OSX).
$ sudo apt-get install imagemagick
$ # on Mac: brew install imagemagick
$ # on Windows: https://www.imagemagick.org/script/binary-releases.php#windows (check "Legacy tools")
$ sudo npm install cordova-icon -g
If you are using an older version of cordova (before 7.x):
$ sudo npm install [email protected] -g
- ImageMagick installed
- At least one platform was added to your project (cordova platforms docs)
- Cordova's config.xml file must exist in the root folder (cordova config.xml docs)
Create an icon.png
file in the root folder of your cordova project.
You can provide a platform-specific icon by naming it icon-[platform].png
(e.g icon-android.png
, icon-ios.png
).
Then run:
$ cordova-icon
You also can specify manually a location for your config.xml
or icon.png
:
$ cordova-icon --config=config.xml --icon=icon.png --icon-background=icon_background.png --icon-foreground=icon_foreground.png
The parameters --icon-background
and --icon-foreground
are required if --android-v6
or --android-v7
is not passed.
If you run a old version of Cordova for iOS / Mac and you need your files in /Resources/icons/
, use this option:
$ cordova-icon --xcode-old
For good results, your file should be:
- square
- for Android and iOS, at least 1024*1024px
- for Windows, at least 1240*1240px
To generate icons for cordova-android v6, use the following:
$ cordova-icon --android-v6
To generate icons for cordova-android v7, use the following:
$ cordova-icon --android-v7
To generate notification icons for cordova-android use the following:
$ cordova-icon --icon-notification=notification.png --icon-notification-name=ic_notification
By default, the file name is ic_notification
. You can change the name through providing a different name
with the parameter --icon-notification-name
.
- Your
config.ml
file will not be updated by the tool (because images are automatically created in the good folders) - Therefore, in your
config.xml
, be sure to remove all lines looking like<icon src="res/android/ldpi.png" density="ldpi" />
Since the execution of cordova-icon is pretty fast, you can add it as a cordova-cli hook to execute before every build. To create a new hook, go to your cordova project and run:
$ mkdir hooks/after_prepare
$ vi hooks/after_prepare/cordova-icon.sh
Paste the following into the hook script:
#!/bin/bash
cordova-icon
Then give the script +x permission:
$ chmod +x hooks/after_prepare/cordova-icon.sh
That's it. Now every time you cordova build
, the icons will be auto generated.
Check out cordova-splash
- cordova-plugin-inapppurchase - a lightweight cordova plugin for in app purchases on iOS/Android
- ng-special-offer - prompt users to rate your cordova app in the app store
- ionic-lock-screen - passcode lock screen for ionic (with touch id support for iOS)
- ionic-zoom-view - an easy way to add a zoom view to images using an ionic modal
- ng-persist - store data on mobile devices (using cordova) that persists even if the user reinstalls the app
MIT