cordova-docs icon indicating copy to clipboard operation
cordova-docs copied to clipboard

Can't run app with single icon configuration

Open Birowsky opened this issue 4 years ago • 9 comments

Bug Report

Problem

cordova run ios fails after adding <icon src="resources/icon.png" /> to config.xml. I've provided the resources/icon.png file, relative to the Cordova project root.

CLI error message:

The following build commands failed: ..../cordova/platforms/ios/build/emulator/TheWorkoutApp.app ..../cordova/platforms/ios/TheWorkoutApp/Images.xcassets (1 failure) xcodebuild: Command failed with exit code 65 error Command failed with exit code 65.

Environment, Platform, Device

cordova 10.0.0 cordova-ios 6.1.1 Mac 11.1 (intel)

Checklist

  • [x] I searched for existing GitHub issues
  • [x] I updated all Cordova tooling to most recent version
  • [x] I included all the necessary information above

Birowsky avatar Jan 07 '21 17:01 Birowsky

iOS doesn't support a single-icon configuration. You must provide icons of different sizes. These icons are used by the OS in different scenarios. The OS expects these icons to be precisely in specific resolutions with specific filenames.

Useful Links:

  • https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/app-icon/
  • https://developer.apple.com/design/human-interface-guidelines/ios/icons-and-images/image-size-and-resolution/
  • https://cordova.apache.org/docs/en/latest/config_ref/images.html#ios (Example is missing modern icon sizes)

Closing as not a bug / won't fix.

breautek avatar Jan 08 '21 13:01 breautek

Oh, I was just following the documentation here which says:

The following configuration can be used to define a single default icon which will be used for all platforms.

<icon src="res/icon.png" />

Birowsky avatar Jan 08 '21 14:01 Birowsky

I guess that warrants reopening this to at least investigate what is correct.

Using a single icon definitely shouldn't be recommended though. There is reasons why platforms expects specific sizes.

breautek avatar Jan 08 '21 14:01 breautek

They certainly do, but as you might know, when working natively, they provide tools to generate all other icons variants based on a single one.

If Cordova would do that for all platforms, that'd be bery bery nice : )

Birowsky avatar Jan 08 '21 14:01 Birowsky

You must provide all the icons sizes that iOS requires. The docs are incorrect about being able to specify a single icon.

While it would be great for Cordova to automatically generate icons, that's a lot of code to test and maintain and update every time Apple changes their requirements, and I don't realistically think we should take on that additional maintenance burden.

dpogue avatar Jan 08 '21 15:01 dpogue

While it would be great for Cordova to automatically generate icons, that's a lot of code to test and maintain and update every time Apple changes their requirements, and I don't realistically think we should take on that additional maintenance burden.

There are already third-party tools that does just this as well. Ionic maintains a tool which appears to be relatively up to date: https://www.npmjs.com/package/cordova-res

breautek avatar Jan 08 '21 15:01 breautek

I understand, folks. I'd rather have you focus on substantial things. I guess this issue boils down to adjusting the docs a bit.

Birowsky avatar Jan 08 '21 17:01 Birowsky

I understand, folks. I'd rather have you focus on substantial things. I guess this issue boils down to adjusting the docs a bit.

Agreed, I'll move this issue over to our docs repo.

breautek avatar Jan 11 '21 00:01 breautek

I guess that warrants reopening this to at least investigate what is correct.

Using a single icon definitely shouldn't be recommended though. There is reasons why platforms expects specific sizes.

I spent so much time on this only to find out the documentation hasn't been updated in 3 years. It's still up there saying you can use a single icon for both platforms and IOS keeps complaining.

bex-buri avatar Feb 29 '24 04:02 bex-buri