Please better document iOS 15's new behaviour in regards to 'prewarming' application processes

Originator:liam.nichols.LN
Number:rdar://FB9780579 Date Originated:2021-11-25
Status:Open Resolved:
Product:iOS and iPadOS Product Version:15
Classification:Suggestion Reproducible:
 
Starting with iOS 15, a new feature within the operating system predicts when the user is likely to open an app and if the app isn’t already running, it will launch the process and run pre-main tasks in order to provide a quick feeling launch if/when the user does decide to open the app.

This is great from the users perspective, but this change appears to be documented nowhere and the change in application lifecycle events has caused a lot of bugs and confusion. 

For reference, our application used the initialisation of the UIApplicationDelegate class to perform some setup which involved reading Keychain items that are only accessible when the device was unlocked. This has worked great for years because opening launching the app has always been a foreground process but starting in iOS 15, the keychain read would fail and we’d see our users being effectively ‘logged out’ because we couldn’t read access tokens. 

Once we figured the reason for this out, it all made sense. But it took over a week of work for something that should really have been documented in release notes or somewhere on developer.apple.com. 

Some suggestions for how you could help people like me with changes like this:

- Document the behavioural change in the release notes
- Provide documentation on application lifecycle events and clearer guidance on when is an appropriate time to do stuff
- Provide debugging tools in the system that allow us to reproduce this behaviour 

Thanks again for all of the work on delivering new and awesome features like this to the end-user, I hope this feedback provides some insight into how you can help third party developers to avoid bugs of this class as the OS becomes more and more reliant on on-device intelligence that is hard to debug/reliably reproduce!

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!