Hi all. Thanks in advance for any guidance you’re able to offer.
We’ve had an issue reported by multiple customers where, following an iOS update, our app crashes on the next launch. When this happens, users briefly see a split screen: half of the view shows the app background, while the other half is completely black. After this point, the app is unusable.
Here’s what we’ve uncovered so far during our investigation:
-
We believe this occurs when a user is already signed into the app at the time they install the iOS update. For context, we intentionally do not force users to log out of the app, as it’s primarily used for customer support and assistance. This is a firm business decision and not something we plan to change.
-
We suspect the issue is related to our Flutter WebView and how it restores or reloads session state following an iOS update. In the past, updating the Flutter version has resolved similar issues, but we are currently on the latest available version.
-
Once the half-screen issue occurs, all app functionality is blocked. At present, the only workaround is for the user to delete and reinstall the app.
-
The most frustrating part is that this does not affect all users. Some customers have updated to iOS 26.2 without any issues at all. We’ve been unable to reproduce the problem internally, despite extensive testing and attempts to force the conditions. That said, our IT Director did experience the issue firsthand on his own device.
For our next release, we’re planning to try the following changes, though we won’t know for certain whether they resolve the issue until the update is in the wild.
First, disabling iOS state restoration:
func application(_ application: UIApplication,
shouldSaveApplicationState coder: NSCoder) -> Bool {
return false
}
func application(_ application: UIApplication,
shouldRestoreApplicationState coder: NSCoder) -> Bool {
return false
}
This was recommended to us as it’s apparently a common approach to addressing post-update freezes or broken restore states.
Second, detecting an iOS version change and resetting the WebView / Flutter state on first launch after an update:
let lastOS = UserDefaults.standard.string(forKey: "lastOSVersion")
let currentOS = UIDevice.current.systemVersion
if lastOS != currentOS {
// Clear WebView data
WKWebsiteDataStore.default().removeData(
ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(),
modifiedSince: Date.distantPast,
completionHandler: {}
)
// Force Flutter engine restart
// OR route user through a native splash/login screen
UserDefaults.standard.set(currentOS, forKey: "lastOSVersion")
}
The idea here is to ensure the WebView and Flutter engine start cleanly after an iOS update, rather than attempting to restore potentially incompatible state.
We’d really welcome any ideas, suggestions, or feedback from others who may have encountered something similar. Apologies in advance if any details are vague — I’m not deeply technical, so this is based on the research and guidance we’ve gathered so far.
Thanks again for your time and help, Chris Brodier