I recently started using ionic 6 and capacitor(not cordova), and I don't know how to replace its default application icon and splash screen. Is there any way to do it and generate resources using ionic capacitor cli like what we were doing with cordova(ionic cordova resources android)? where should I replace icon and splash images with my own? after adding android platform using capacitor(ionic cap add android), it generates icon and splash images in android resources, but I don't know how to replace my own image.
By adding a platform, Ionic will install Cordova splash screen plugin for that platform so we do not need to install anything afterwards. All we need to do is to find two images. The images should be png, psd or ai files. The minimum dimension should be 192x192 for icon image and 2208×2208 for the splash screen image.
In you current project file there is a res folder inside that folder you can find the generated icons with related folders. You can copy the content inside that folder and replace related content with the platform/android/res folder. Save this answer.
Automatic icon and splash screen resizing CLI tool for Capacitor based applications.
It automatically resizes and copies your icon.png and splash.png files to platform dedicated directories.
It does NOT require any external binary libraries. Javascript only.
Installation
$ npm install capacitor-resources -g
Usage
Required files Add your icon.png (1024x1024 px) and splash.png (2732x2732 px) files to the 'resources' folder under the root of your capacitor based project.
$ capacitor-resources
https://www.npmjs.com/package/capacitor-resources
UPDATE - It Copies the files AUTOMATICALLY now!
I solved this by using capacitor-resources and this script below. Save it as resources.js in your root. Then in your package.json file under scripts add:
"resources": "capacitor-resources -p android,ios && node resources.js",
const fs = require('fs'); function copyImages(sourcePath, targetPath, images) { for (const icon of images) { let source = sourcePath + icon.source; let target = targetPath + icon.target; fs.copyFile(source, target, err => { if (err) throw err; console.log(`${source} >> ${target}`); }); } } const SOURCE_ANDROID_ICON = 'resources/android/icon/'; const SOURCE_ANDROID_SPLASH = 'resources/android/splash/'; const TARGET_ANDROID_ICON = 'android/app/src/main/res/'; const TARGET_ANDROID_SPLASH = 'android/app/src/main/res/'; const ANDROID_ICONS = [ { source: 'drawable-ldpi-icon.png', target: 'drawable-hdpi-icon.png' }, { source: 'drawable-mdpi-icon.png', target: 'mipmap-mdpi/ic_launcher.png' }, { source: 'drawable-mdpi-icon.png', target: 'mipmap-mdpi/ic_launcher_round.png' }, { source: 'drawable-mdpi-icon.png', target: 'mipmap-mdpi/ic_launcher_foreground.png' }, { source: 'drawable-hdpi-icon.png', target: 'mipmap-hdpi/ic_launcher.png' }, { source: 'drawable-hdpi-icon.png', target: 'mipmap-hdpi/ic_launcher_round.png' }, { source: 'drawable-hdpi-icon.png', target: 'mipmap-hdpi/ic_launcher_foreground.png' }, { source: 'drawable-xhdpi-icon.png', target: 'mipmap-xhdpi/ic_launcher.png' }, { source: 'drawable-xhdpi-icon.png', target: 'mipmap-xhdpi/ic_launcher_round.png' }, { source: 'drawable-xhdpi-icon.png', target: 'mipmap-xhdpi/ic_launcher_foreground.png' }, { source: 'drawable-xxhdpi-icon.png', target: 'mipmap-xxhdpi/ic_launcher.png' }, { source: 'drawable-xxhdpi-icon.png', target: 'mipmap-xxhdpi/ic_launcher_round.png' }, { source: 'drawable-xxhdpi-icon.png', target: 'mipmap-xxhdpi/ic_launcher_foreground.png' }, { source: 'drawable-xxxhdpi-icon.png', target: 'mipmap-xxxhdpi/ic_launcher.png' }, { source: 'drawable-xxxhdpi-icon.png', target: 'mipmap-xxxhdpi/ic_launcher_round.png' }, { source: 'drawable-xxxhdpi-icon.png', target: 'mipmap-xxxhdpi/ic_launcher_foreground.png' } ]; const ANDROID_SPLASHES = [ { source: 'drawable-land-mdpi-screen.png', target: 'drawable/splash.png' }, { source: 'drawable-land-mdpi-screen.png', target: 'drawable-land-mdpi/splash.png' }, { source: 'drawable-land-hdpi-screen.png', target: 'drawable-land-hdpi/splash.png' }, { source: 'drawable-land-xhdpi-screen.png', target: 'drawable-land-xhdpi/splash.png' }, { source: 'drawable-land-xxhdpi-screen.png', target: 'drawable-land-xxhdpi/splash.png' }, { source: 'drawable-land-xxxhdpi-screen.png', target: 'drawable-land-xxxhdpi/splash.png' }, { source: 'drawable-port-mdpi-screen.png', target: 'drawable-port-mdpi/splash.png' }, { source: 'drawable-port-hdpi-screen.png', target: 'drawable-port-hdpi/splash.png' }, { source: 'drawable-port-xhdpi-screen.png', target: 'drawable-port-xhdpi/splash.png' }, { source: 'drawable-port-xxhdpi-screen.png', target: 'drawable-port-xxhdpi/splash.png' }, { source: 'drawable-port-xxxhdpi-screen.png', target: 'drawable-port-xxxhdpi/splash.png' } ]; copyImages(SOURCE_ANDROID_ICON, TARGET_ANDROID_ICON, ANDROID_ICONS); copyImages(SOURCE_ANDROID_SPLASH, TARGET_ANDROID_SPLASH, ANDROID_SPLASHES);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With