How can I simulate app being killed in background?
Yes, if your app is in the background already. An app killed by the system while in the background is terminated with no warning-- no app delegate methods are called, no state changes are made-- which is exactly what happens when you do a debugger stop while the app is in the background. (This presupposes that you've already put your app in the background by clicking the home button on the simulator or Cmd-Shift-H)
(As @Inafziger notes, you can also get the same effect by using the simulator's interface to force quit the running app.)
iOS 14.5 and Later
Enable Settings - Developer - Fast App Termination on the device:
This will terminate, instead of suspend, your app when they're backgrounded. This is useful primarily for testing state restoration logic.
iOS 14.4 and Earlier
As the other answers note, you can immediately end your app by force-quitting it or by stopping the debugger. Your app will get no warning in those cases.
If you're looking to test your applicationWillTerminate
methods, set UIApplicationExitsOnSuspend
to YES
in your .plist and then switch apps or press the home button. Make sure you set the key to a Boolean, not the string "YES".
I know this is a couple of years old, but wanted to share if anyone else is looking into this now. Try the following steps:
- Run the app on a device
- Press the home button once to go to the home screen
- Press and hold the power button for 5 seconds until you see the power off slider
- Press and hold the home button for 5 seconds
If you were running the app from Xcode you should see Message from debugger: Terminated due to signal 9