Skip to content

Watchdog Terminations

Gleb edited this page Jan 23, 2024 · 3 revisions

Watchdog Terminations

iOS can kill our app in different circumstances. It can be if app is not responsive while in foreground, if app consumes too much memory, etc. We call all such terminations "Watchdog Terminations" even though it may be not 100% accurate.

Implementation-wise watchdog terminations in our case are all terminations, where we do not know the reason:

  • it is not user killed our app
  • it is not a crash
  • it is not a fatal hang
  • it is not a system reboot
  • it is not an app update
  • it is not a language change
  • etc

Implementation

To catch those terminations you need to implement WatchdogTerminationsReceiver protocol, you also need to pass proper value of didCrashPreviously when initialize PerformanceMonitoring, otherwise all crashes will be tracked as watchdog terminations.

Do not forget to check applicationState if app is in the foreground.

Clone this wiki locally