setAlternateIconName system alert ignores CFBundleLocalizations and forces English in iOS 26.1+ (Unexpectedly triggers sceneWillResignActive)
Environment:
Xcode Version: Xcode 26.3
Affected iOS Versions: iOS 26.1 and later
Working iOS Versions: iOS 26.0 and earlier
Tested Devices:
iPhone 15 Pro (iOS 26.2) - ❌ Bug presents
iPhone 17 (iOS 26.1) - ❌ Bug presents
iPhone Air (iOS 26.0) - ✅ Works as expected
iPhone 16 Pro Max (iOS 18.0) - ✅ Works as expected
Description: We have identified a severe localization regression regarding the setAlternateIconName(_:completionHandler:) API starting from iOS 26.1.
Our application is strictly restricted to support only Traditional Chinese (zh-TW / zh-Hant). We have correctly configured CFBundleLocalizations, CFBundleDevelopmentRegion, and explicitly set CFBundleAllowMixedLocalizations to YES in our Info.plist.
In iOS 26.0 and earlier, when changing the app icon, the system alert correctly displays in Traditional Chinese. However, in iOS 26.1 and later, the alert unexpectedly falls back to English, completely ignoring the app's localization constraints and the user's preferred device language.
Crucial Observation: We noticed a significant behavioral change: in iOS 26.1+, invoking setAlternateIconName forces the app to enter the sceneWillResignActive state before the alert appears. This behavior did not exist prior to iOS 26.1. This strongly suggests that the alert has been moved to an out-of-process overlay managed by SpringBoard. It appears that the system cache is failing to properly resolve the app's CFBundleLocalizations during this out-of-process presentation.
Steps to Reproduce:
Create an iOS application restricted to Traditional Chinese (zh-TW).
Set CFBundleDevelopmentRegion to zh-Hant in Info.plist.
Set the CFBundleLocalizations array to contain only zh-TW (or zh-Hant).
Set CFBundleAllowMixedLocalizations to YES.
Implement setAlternateIconName to trigger the app icon change.
Run the app on a device running iOS 26.1 or later (ensure the device's system language is set to Traditional Chinese).
Trigger the icon change action.
Expected Result: The app should NOT trigger sceneWillResignActive (maintaining iOS 26.0 behavior); OR the out-of-process system alert must correctly read the Info.plist and display the prompt in Traditional Chinese.
Actual Result: The app immediately triggers sceneWillResignActive and loses focus. The system overlay alert appears but ignores all Traditional Chinese settings, displaying an English interface instead.
Any insights or workarounds from the engineering team would be highly appreciated. We'd like to know if this is a known SpringBoard rendering issue in iOS 26.1+. Thank you!
