setAlternateIconName system alert ignores CFBundleLocalizations and forces English in iOS 26.1+ (Unexpectedly triggers sceneWillResignActive)

You’re now watching this thread. If you’ve opted in to email or web notifications, you’ll be notified when there’s activity. Click again to stop watching or visit your profile to manage watched threads and notifications.
You’ve stopped watching this thread and will no longer receive emails or web notifications when there’s activity. Click again to start watching.
Created 11h
Replies 0
Boosts 0
Views 52
Participants 1

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!

Share this post
Copied to Clipboard
Replies  0
Boosts  0
Views  52
Participants  1
setAlternateIconName system alert ignores CFBundleLocalizations and forces English in iOS 26.1+ (Unexpectedly triggers sceneWillResignActive)
First post date Last post date
Q