-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Bug Report
Plugin Version
"version": "6.0.0"
Capacitor Version
Latest Dependencies:
@capacitor/cli: 7.4.4
@capacitor/core: 7.4.4
@capacitor/android: 7.4.4
@capacitor/ios: 7.4.4
Installed Dependencies:
@capacitor/cli: 7.2.0
@capacitor/ios: 7.2.0
@capacitor/android: 7.2.0
@capacitor/core: 7.4.4
Platform(s)
iOS 26 and higher
Current Behavior
For Android, switching app icons is fine.
For iOS however, nothing happens on the latest iOS versions (26 and higher).
We've implemented a few buttons inside our app, which allow the user to change app icon. Upon pressing any of the different options, the AppIcon.change() is called from the plugin's API.
Using both the iOS simulators and physical devices on any older OS (lower than 26), the app icon changes successfully.
The idea we have is that for both iOS and Android, we swap the standard app icon for a Premium icon. When going back to the standard icon, we use a replica of the standard icon. We call this replica the defaulticon. The reason why is so that we have an equal an easy implementation for both iOS and Android. Thanks to this, we do not need to perform a AppIcon.reset() for iOS specifically.
Expected Behavior
When pressing any of the app icon option buttons we have implemented. No notification should be shown, since we pass suppressNotification: true as a parameter. Also, the app icon should change.
Code Reproduction
I will try and provide a simple overview of what I have created. Since the code is inside a private repo for a client, we may sadly not provide too many details I'm afraid.
In xcode, we have set up the new App Icon for iOS and enabled "Include all app icon assets", as well as added all necessary names for the "alternate app icon sets" option.
The buttons have an onClick property which calls the AppIcon.change() when clicked:
const iconNames = ['defaulticon', 'premiumicon'];
const changeIcon = async (iconName: string) => {
const disableIcons = iconNames.filter(name => name !== iconName);
try {
await AppIcon.change({ name: iconName, suppressNotification: true, disable: disableIcons });
} catch (error) {
console.error('Icon change failed:', error);
}
};
<Button onClick={() => changeIcon('premiumicon')}>to PremiumAppIcon
Other Technical Details
I use the Webstorm IDE on version 2025.2.3. Xcode is currently running 26.1 (17B55). I have iOS simulators running for iOS 26.1 (which doesn't allow app icon changes) and one for iOS version 17 (which does allow app icon changes)
Additional Context
No error is thrown inside the debugger when trying to change app icon in the latest iOS versions 26 and higher.