Support iOS 26 Icon Composer icons
Feature Request
Motivation Behind Feature
iOS/macOS/visionOS/Xcode 26 support a new icon format that uses vector drawing and effect layers to composite an icon dynamically for different modes and scales.
Cordova should (when building with Xcode 26) support providing an app icon in that new format.
Feature Description
If an <icon> tag is defined in config.xml whose src attribute has an extension of .icon and a folder exists at that path, it should be copied in to the platform App folder and added to the Xcode project.pbxproj file as a resource (essentially, treat it the same as <resource-file> but with a hardcoded target path of AppIcon.icon)
Implementation
<icon src="res/icon/ios/IconComposerFile.icon" />
is effectively the same as
<resource-file src="res/icon/ios/IconComposerFile.icon" target="../AppIcon.icon" />
Alternatives or Workarounds
Make people use <resource-file> directly, which seems less than ideal since this is likely to be a common use case.
Would <icon src="res/icon/ios/IconComposerFile.icon" /> replace all of the previous icon entries, or would it be added alongside them?
I haven’t looked into the new icon format yet, but I’m wondering if it also covers the older entries for backward compatibility, the non-"layered icons out of Liquid Glass"?
I believe this supersedes the other app icons on iOS 26 and newer versions, but those existing icons will continue to be used for older versions. Keep in mind that Xcode 15 allows specifying a single 1024⨉1024 icon instead of all the various sizes. Icon Composer includes an option to manually export the layered icon as a 1024⨉1024 image.
Do you think the following PR would be re-reviewed for this release?
https://github.com/apache/cordova-ios/pull/1309
I believe back then it was rejected because it required iOS 12.0 and CordovaLib decided to remain on 11.0, but now the minimum deployment target has been increased for Cordova-iOS 8.
Do you think the following PR would be re-reviewed for this release? #1309
The functionality for a single 1024⨉1024 icon is already supported in cordova-ios 8.0.0 with https://github.com/apache/cordova-ios/pull/1465