ionic-team / capacitor-assets

Local Capacitor icon/splash screen resource generation tool
MIT License
506 stars 99 forks source link

Android adaptive icon > option --icon-background-source does not work #56

Closed ebeling closed 4 years ago

ebeling commented 4 years ago

Cordova CLI: 9.0.0 (cordova-lib@9.0.1) Cordova Platforms : android 8.1.0 cordova-res : 0.8.1 npm : 6.12.0

If I only put icon-foreground.png in folder resources/android/ and than call cordova-res android --icon-background-source #FF0000 following error is thrown: ERROR: Missing source for "adaptive-icon" (sources: resources/android/icon-background.png, resources/android/icon-background.jpg, resources/android/icon-background.jpeg) and only 6 xxx-foreground.png where generated.

nsundberg commented 4 years ago

You should put quotes around the hex color as per the readme.

imhoffd commented 4 years ago

What's the output with the --verbose flag?

ebeling commented 4 years ago

cordova-res android --icon-background '#FF0000' --verbose

cordova-res Paths: (config: '/..../config.xml') (resources dir: 'resources') +0ms cordova-res:platform Running android platform with options: { 'adaptive-icon': cordova-res:platform { icon: { sources: [Array] }, cordova-res:platform foreground: { sources: [Array] }, cordova-res:platform background: { sources: [Array] } }, cordova-res:platform icon: cordova-res:platform { sources: cordova-res:platform [ 'resources/android/icon.png', cordova-res:platform 'resources/android/icon.jpg', cordova-res:platform 'resources/android/icon.jpeg', cordova-res:platform 'resources/icon.png', cordova-res:platform 'resources/icon.jpg', cordova-res:platform 'resources/icon.jpeg' ] }, cordova-res:platform splash: cordova-res:platform { sources: cordova-res:platform [ 'resources/android/splash.png', cordova-res:platform 'resources/android/splash.jpg', cordova-res:platform 'resources/android/splash.jpeg', cordova-res:platform 'resources/splash.png', cordova-res:platform 'resources/splash.jpg', cordova-res:platform 'resources/splash.jpeg' ] } } +0ms cordova-res:platform Building adaptive-icon resources +2ms cordova-res:platform Building icon resources for android platform +0ms cordova-res:image Source image for icon: { format: 'png', cordova-res:image size: 152963, cordova-res:image width: 1024, cordova-res:image height: 1024, cordova-res:image space: 'srgb', cordova-res:image channels: 4, cordova-res:image depth: 'uchar', cordova-res:image density: 72, cordova-res:image isProgressive: false, cordova-res:image hasProfile: true, cordova-res:image hasAlpha: true, cordova-res:image icc: cordova-res:image <Buffer 00 00 02 54 6c 63 6d 73 04 30 00 00 6d 6e 74 72 52 47 42 20 58 59 5a 20 07 e3 00 08 00 05 00 0d 00 0b 00 0a 61 63 73 70 41 50 50 4c 00 00 00 00 00 00 ... > } +0ms cordova-res:platform Using 'resources/icon.png' for icon source image for android +4ms cordova-res:image Generating 'resources/android/icon/drawable-ldpi-icon.png' (36x36) +2ms cordova-res:image Generating 'resources/android/icon/drawable-mdpi-icon.png' (48x48) +1ms cordova-res:image Generating 'resources/android/icon/drawable-hdpi-icon.png' (72x72) +0ms cordova-res:image Generating 'resources/android/icon/drawable-xhdpi-icon.png' (96x96) +1ms cordova-res:image Generating 'resources/android/icon/drawable-xxhdpi-icon.png' (144x144) +0ms cordova-res:image Generating 'resources/android/icon/drawable-xxxhdpi-icon.png' (192x192) +0ms cordova-res:image Source image for adaptive-icon: { format: 'png', cordova-res:image size: 13929, cordova-res:image width: 432, cordova-res:image height: 432, cordova-res:image space: 'srgb', cordova-res:image channels: 4, cordova-res:image depth: 'uchar', cordova-res:image density: 72, cordova-res:image isProgressive: false, cordova-res:image hasProfile: true, cordova-res:image hasAlpha: true, cordova-res:image icc: cordova-res:image <Buffer 00 00 02 54 6c 63 6d 73 04 30 00 00 6d 6e 74 72 52 47 42 20 58 59 5a 20 07 e3 00 0a 00 0a 00 07 00 0e 00 15 61 63 73 70 41 50 50 4c 00 00 00 00 00 00 ... >, cordova-res:image xmp: cordova-res:image <Buffer 3c 3f 78 70 61 63 6b 65 74 20 62 65 67 69 6e 3d 22 ef bb bf 22 20 69 64 3d 22 57 35 4d 30 4d 70 43 65 68 69 48 7a 72 65 53 7a 4e 54 63 7a 6b 63 39 64 ... > } +193ms cordova-res:platform Using 'resources/android/icon-foreground.png' for adaptive-icon source image for android +198ms cordova-res:image Generating 'resources/android/icon/ldpi-foreground.png' (81x81) +1ms cordova-res:image Generating 'resources/android/icon/hdpi-foreground.png' (162x162) +0ms cordova-res:image Generating 'resources/android/icon/mdpi-foreground.png' (108x108) +1ms cordova-res:image Generating 'resources/android/icon/xhdpi-foreground.png' (216x216) +0ms cordova-res:image Generating 'resources/android/icon/xxhdpi-foreground.png' (324x324) +0ms cordova-res:image Generating 'resources/android/icon/xxxhdpi-foreground.png' (432x432) +0ms cordova-res:image Source file missing: resources/android/icon-background.png +116ms cordova-res:image Source file missing: resources/android/icon-background.jpg +0ms cordova-res:image Source file missing: resources/android/icon-background.jpeg +0ms cordova-res:platform Error with adaptive icons: { Error cordova-res:platform at new BaseError (/usr/local/lib/node_modules/cordova-res/dist/error.js:7:23) cordova-res:platform at new BadInputError (/usr/local/lib/node_modules/cordova-res/dist/error.js:23:9) cordova-res:platform at resolveSource (/usr/local/lib/node_modules/cordova-res/dist/platform.js:210:11) name: 'BadInputError', code: 'BAD_INPUT' } +117ms cordova-res Caught fatal error: { Error cordova-res at new BaseError (/usr/local/lib/node_modules/cordova-res/dist/error.js:7:23) cordova-res at new BadInputError (/usr/local/lib/node_modules/cordova-res/dist/error.js:23:9) cordova-res at resolveSource (/usr/local/lib/node_modules/cordova-res/dist/platform.js:210:11) name: 'BadInputError', code: 'BAD_INPUT' } +331ms ERROR: Missing source for "adaptive-icon" (sources: resources/android/icon-background.png, resources/android/icon-background.jpg, resources/android/icon-background.jpeg) `

nsundberg commented 4 years ago

cordova-res android --icon-background '#FF0000' --verbose

Should be --icon-background-source

ebeling commented 4 years ago

If I use --icon-background-source no background images will be generated:

cordova-res --icon-background-source '#FF0000' --verbose

cordova-res Paths: (config: '/.../config.xml') (resources dir: 'resources') +0ms cordova-res:platform Running android platform with options: { 'adaptive-icon': cordova-res:platform { icon: { sources: [Array] }, cordova-res:platform foreground: { sources: [Array] }, cordova-res:platform background: { sources: [Array] } }, cordova-res:platform icon: cordova-res:platform { sources: cordova-res:platform [ 'resources/android/icon.png', cordova-res:platform 'resources/android/icon.jpg', cordova-res:platform 'resources/android/icon.jpeg', cordova-res:platform 'resources/icon.png', cordova-res:platform 'resources/icon.jpg', cordova-res:platform 'resources/icon.jpeg' ] }, cordova-res:platform splash: cordova-res:platform { sources: cordova-res:platform [ 'resources/android/splash.png', cordova-res:platform 'resources/android/splash.jpg', cordova-res:platform 'resources/android/splash.jpeg', cordova-res:platform 'resources/splash.png', cordova-res:platform 'resources/splash.jpg', cordova-res:platform 'resources/splash.jpeg' ] } } +0ms cordova-res:platform Building adaptive-icon resources +3ms cordova-res:platform Building icon resources for android platform +0ms cordova-res:image Source image for icon: { format: 'png', cordova-res:image size: 152963, cordova-res:image width: 1024, cordova-res:image height: 1024, cordova-res:image space: 'srgb', cordova-res:image channels: 4, cordova-res:image depth: 'uchar', cordova-res:image density: 72, cordova-res:image isProgressive: false, cordova-res:image hasProfile: true, cordova-res:image hasAlpha: true, cordova-res:image icc: cordova-res:image <Buffer 00 00 02 54 6c 63 6d 73 04 30 00 00 6d 6e 74 72 52 47 42 20 58 59 5a 20 07 e3 00 08 00 05 00 0d 00 0b 00 0a 61 63 73 70 41 50 50 4c 00 00 00 00 00 00 ... > } +0ms cordova-res:platform Using 'resources/icon.png' for icon source image for android +18ms cordova-res:image Generating 'resources/android/icon/drawable-ldpi-icon.png' (36x36) +4ms cordova-res:image Generating 'resources/android/icon/drawable-mdpi-icon.png' (48x48) +1ms cordova-res:image Generating 'resources/android/icon/drawable-hdpi-icon.png' (72x72) +1ms cordova-res:image Generating 'resources/android/icon/drawable-xhdpi-icon.png' (96x96) +0ms cordova-res:image Generating 'resources/android/icon/drawable-xxhdpi-icon.png' (144x144) +0ms cordova-res:image Generating 'resources/android/icon/drawable-xxxhdpi-icon.png' (192x192) +0ms cordova-res:image Source image for adaptive-icon: { format: 'png', cordova-res:image size: 13929, cordova-res:image width: 432, cordova-res:image height: 432, cordova-res:image space: 'srgb', cordova-res:image channels: 4, cordova-res:image depth: 'uchar', cordova-res:image density: 72, cordova-res:image isProgressive: false, cordova-res:image hasProfile: true, cordova-res:image hasAlpha: true, cordova-res:image icc: cordova-res:image <Buffer 00 00 02 54 6c 63 6d 73 04 30 00 00 6d 6e 74 72 52 47 42 20 58 59 5a 20 07 e3 00 0a 00 0a 00 07 00 0e 00 15 61 63 73 70 41 50 50 4c 00 00 00 00 00 00 ... >, cordova-res:image xmp: cordova-res:image <Buffer 3c 3f 78 70 61 63 6b 65 74 20 62 65 67 69 6e 3d 22 ef bb bf 22 20 69 64 3d 22 57 35 4d 30 4d 70 43 65 68 69 48 7a 72 65 53 7a 4e 54 63 7a 6b 63 39 64 ... > } +214ms cordova-res:platform Using 'resources/android/icon-foreground.png' for adaptive-icon source image for android +219ms cordova-res:image Generating 'resources/android/icon/ldpi-foreground.png' (81x81) +1ms cordova-res:image Generating 'resources/android/icon/xhdpi-foreground.png' (216x216) +0ms cordova-res:image Generating 'resources/android/icon/mdpi-foreground.png' (108x108) +0ms cordova-res:image Generating 'resources/android/icon/xxhdpi-foreground.png' (324x324) +0ms cordova-res:image Generating 'resources/android/icon/hdpi-foreground.png' (162x162) +1ms cordova-res:image Generating 'resources/android/icon/xxxhdpi-foreground.png' (432x432) +0ms cordova-res:platform Building splash resources for android platform +125ms cordova-res:image Source image for splash: { format: 'png', cordova-res:image size: 4307457, cordova-res:image width: 2732, cordova-res:image height: 2732, cordova-res:image space: 'srgb', cordova-res:image channels: 3, cordova-res:image depth: 'uchar', cordova-res:image density: 72, cordova-res:image isProgressive: false, cordova-res:image hasProfile: true, cordova-res:image hasAlpha: false, cordova-res:image icc: cordova-res:image <Buffer 00 00 02 54 6c 63 6d 73 04 30 00 00 6d 6e 74 72 52 47 42 20 58 59 5a 20 07 e3 00 08 00 05 00 0d 00 0b 00 0a 61 63 73 70 41 50 50 4c 00 00 00 00 00 00 ... >, cordova-res:image xmp: cordova-res:image <Buffer 3c 3f 78 70 61 63 6b 65 74 20 62 65 67 69 6e 3d 22 ef bb bf 22 20 69 64 3d 22 57 35 4d 30 4d 70 43 65 68 69 48 7a 72 65 53 7a 4e 54 63 7a 6b 63 39 64 ... > } +160ms cordova-res:platform Using 'resources/splash.png' for splash source image for android +37ms cordova-res:image Generating 'resources/android/splash/drawable-land-ldpi-screen.png' (320x240) +1ms cordova-res:image Generating 'resources/android/splash/drawable-land-mdpi-screen.png' (480x320) +0ms cordova-res:image Generating 'resources/android/splash/drawable-land-hdpi-screen.png' (800x480) +0ms cordova-res:image Generating 'resources/android/splash/drawable-land-xhdpi-screen.png' (1280x720) +0ms cordova-res:image Generating 'resources/android/splash/drawable-land-xxhdpi-screen.png' (1600x960) +0ms cordova-res:image Generating 'resources/android/splash/drawable-land-xxxhdpi-screen.png' (1920x1280) +1ms cordova-res:image Generating 'resources/android/splash/drawable-port-ldpi-screen.png' (240x320) +0ms cordova-res:image Generating 'resources/android/splash/drawable-port-mdpi-screen.png' (320x480) +0ms cordova-res:image Generating 'resources/android/splash/drawable-port-hdpi-screen.png' (480x800) +1ms cordova-res:image Generating 'resources/android/splash/drawable-port-xhdpi-screen.png' (720x1280) +0ms cordova-res:image Generating 'resources/android/splash/drawable-port-xxhdpi-screen.png' (960x1600) +0ms cordova-res:image Generating 'resources/android/splash/drawable-port-xxxhdpi-screen.png' (1280x1920) +0ms Generated 24 resources for android cordova-res:platform Running ios platform with options: { 'adaptive-icon': undefined, cordova-res:platform icon: cordova-res:platform { sources: cordova-res:platform [ 'resources/ios/icon.png', cordova-res:platform 'resources/ios/icon.jpg', cordova-res:platform 'resources/ios/icon.jpeg', cordova-res:platform 'resources/icon.png', cordova-res:platform 'resources/icon.jpg', cordova-res:platform 'resources/icon.jpeg' ] }, cordova-res:platform splash: cordova-res:platform { sources: cordova-res:platform [ 'resources/ios/splash.png', cordova-res:platform 'resources/ios/splash.jpg', cordova-res:platform 'resources/ios/splash.jpeg', cordova-res:platform 'resources/splash.png', cordova-res:platform 'resources/splash.jpg', cordova-res:platform 'resources/splash.jpeg' ] } } +8s cordova-res:platform Building icon resources for ios platform +1ms cordova-res:image Source image for icon: { format: 'png', cordova-res:image size: 152963, cordova-res:image width: 1024, cordova-res:image height: 1024, cordova-res:image space: 'srgb', cordova-res:image channels: 4, cordova-res:image depth: 'uchar', cordova-res:image density: 72, cordova-res:image isProgressive: false, cordova-res:image hasProfile: true, cordova-res:image hasAlpha: true, cordova-res:image icc: cordova-res:image <Buffer 00 00 02 54 6c 63 6d 73 04 30 00 00 6d 6e 74 72 52 47 42 20 58 59 5a 20 07 e3 00 08 00 05 00 0d 00 0b 00 0a 61 63 73 70 41 50 50 4c 00 00 00 00 00 00 ... > } +8s cordova-res:platform Using 'resources/icon.png' for icon source image for ios +2ms cordova-res:image Generating 'resources/ios/icon/icon.png' (57x57) +1ms cordova-res:image Generating 'resources/ios/icon/icon@2x.png' (114x114) +1ms cordova-res:image Generating 'resources/ios/icon/icon-20.png' (20x20) +0ms cordova-res:image Generating 'resources/ios/icon/icon-20@3x.png' (60x60) +0ms cordova-res:image Generating 'resources/ios/icon/icon-20@2x.png' (40x40) +0ms cordova-res:image Generating 'resources/ios/icon/icon-29.png' (29x29) +0ms cordova-res:image Generating 'resources/ios/icon/icon-29@2x.png' (58x58) +1ms cordova-res:image Generating 'resources/ios/icon/icon-29@3x.png' (87x87) +0ms cordova-res:image Generating 'resources/ios/icon/icon-24@2x.png' (48x48) +0ms cordova-res:image Generating 'resources/ios/icon/icon-27.5@2x.png' (55x55) +0ms cordova-res:image Generating 'resources/ios/icon/icon-44@2x.png' (88x88) +0ms cordova-res:image Generating 'resources/ios/icon/icon-86@2x.png' (172x172) +1ms cordova-res:image Generating 'resources/ios/icon/icon-98@2x.png' (196x196) +0ms cordova-res:image Generating 'resources/ios/icon/icon-108@2x.png' (216x216) +0ms cordova-res:image Generating 'resources/ios/icon/icon-40.png' (40x40) +0ms cordova-res:image Generating 'resources/ios/icon/icon-40@2x.png' (80x80) +8ms cordova-res:image Generating 'resources/ios/icon/icon-50.png' (50x50) +0ms cordova-res:image Generating 'resources/ios/icon/icon-40@3x.png' (120x120) +0ms cordova-res:image Generating 'resources/ios/icon/icon-50@2x.png' (100x100) +0ms cordova-res:image Generating 'resources/ios/icon/icon-60.png' (60x60) +1ms cordova-res:image Generating 'resources/ios/icon/icon-60@2x.png' (120x120) +0ms cordova-res:image Generating 'resources/ios/icon/icon-60@3x.png' (180x180) +0ms cordova-res:image Generating 'resources/ios/icon/icon-72.png' (72x72) +0ms cordova-res:image Generating 'resources/ios/icon/icon-72@2x.png' (144x144) +1ms cordova-res:image Generating 'resources/ios/icon/icon-76.png' (76x76) +0ms cordova-res:image Generating 'resources/ios/icon/icon-83.5@2x.png' (167x167) +1ms cordova-res:image Generating 'resources/ios/icon/icon-76@2x.png' (152x152) +0ms cordova-res:image Generating 'resources/ios/icon/icon-small.png' (29x29) +0ms cordova-res:image Generating 'resources/ios/icon/icon-small@3x.png' (87x87) +0ms cordova-res:image Generating 'resources/ios/icon/icon-small@2x.png' (58x58) +0ms cordova-res:image Generating 'resources/ios/icon/icon-1024.png' (1024x1024) +1ms cordova-res:platform Building splash resources for ios platform +1s cordova-res:image Source image for splash: { format: 'png', cordova-res:image size: 4307457, cordova-res:image width: 2732, cordova-res:image height: 2732, cordova-res:image space: 'srgb', cordova-res:image channels: 3, cordova-res:image depth: 'uchar', cordova-res:image density: 72, cordova-res:image isProgressive: false, cordova-res:image hasProfile: true, cordova-res:image hasAlpha: false, cordova-res:image icc: cordova-res:image <Buffer 00 00 02 54 6c 63 6d 73 04 30 00 00 6d 6e 74 72 52 47 42 20 58 59 5a 20 07 e3 00 08 00 05 00 0d 00 0b 00 0a 61 63 73 70 41 50 50 4c 00 00 00 00 00 00 ... >, cordova-res:image xmp: cordova-res:image <Buffer 3c 3f 78 70 61 63 6b 65 74 20 62 65 67 69 6e 3d 22 ef bb bf 22 20 69 64 3d 22 57 35 4d 30 4d 70 43 65 68 69 48 7a 72 65 53 7a 4e 54 63 7a 6b 63 39 64 ... > } +1s cordova-res:platform Using 'resources/splash.png' for splash source image for ios +13ms cordova-res:image Generating 'resources/ios/splash/Default-568h@2x~iphone.png' (640x1136) +1ms cordova-res:image Generating 'resources/ios/splash/Default-Landscape-2688h~iphone.png' (2688x1242) +1ms cordova-res:image Generating 'resources/ios/splash/Default-667h.png' (750x1334) +1ms cordova-res:image Generating 'resources/ios/splash/Default-1792h~iphone.png' (828x1792) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Landscape-1792h~iphone.png' (1792x828) +0ms cordova-res:image Generating 'resources/ios/splash/Default-2436h.png' (1125x2436) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Landscape-2436h.png' (2436x1125) +1ms cordova-res:image Generating 'resources/ios/splash/Default-736h.png' (1242x2208) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Landscape-736h.png' (2208x1242) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Landscape@2x~ipad.png' (2048x1536) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Landscape@~ipadpro.png' (2732x2048) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Landscape~ipad.png' (1024x768) +1ms cordova-res:image Generating 'resources/ios/splash/Default-Portrait@2x~ipad.png' (1536x2048) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Portrait@~ipadpro.png' (2048x2732) +0ms cordova-res:image Generating 'resources/ios/splash/Default-Portrait~ipad.png' (768x1024) +0ms cordova-res:image Generating 'resources/ios/splash/Default@2x~iphone.png' (640x960) +0ms cordova-res:image Generating 'resources/ios/splash/Default~iphone.png' (320x480) +0ms cordova-res:image Generating 'resources/ios/splash/Default@2x~universal~anyany.png' (2732x2732) +0ms cordova-res:image Generating 'resources/ios/splash/Default-2688h~iphone.png' (1242x2688) +1ms Generated 50 resources for ios cordova-res:config Color sources found--generating colors document. +0ms cordova-res:config Creating node for 'background' +1ms cordova-res:config Orientation preference: undefined +3ms Wrote to config.xml

imhoffd commented 4 years ago

^ this output no longer has your original error. Everything was generated correctly.

ebeling commented 4 years ago

You are right, thank you. I had expected, that cordova-res would build the background-images with the given color. But now I saw, that there are entries "background="@color/background" on each icon-tag in config.xml and subdirectory 'values' with color information in 'resources' directory.