Apple already has processes in place for background process execution on iPhones and iPads [1], including a way for the app to request additional background processing time [2]. The issue is that this system needs to be expanded to cover the use cases that people are describing. It really is hard to understand why Apple has not done so nor given any indication that they will.
> Apps don’t normally receive any extra execution time after they enter the background. However, UIKit does grant execution time to apps that support any of the following time-sensitive capabilities:
* Audio communication using AirPlay, or Picture in Picture video.
* Location-sensitive services for users.
* Voice over IP.
* Communication with an external accessory.
* Communication with Bluetooth LE accessories, or conversion of the device into a Bluetooth LE accessory.
* Regular updates from a server.
* Support for Apple Push Notification service (APNs).
> Enable the Background Modes capability in Xcode if your app supports background features.
Keeping an SSH session alive is barely outside of the existing use cases. Long-running export jobs and things like that would need a new use case defined, perhaps with QoS definitions.
Yup those existed for a long time, though I think we need some entitlement for "app-to-app" or "arbitrary extension" kind of background processing/serving.
The existing ones, while welcome, are not enough for many pro cases. The closest is inter-app audio, which was a good addition but perhaps not extensive enough.
> Apps don’t normally receive any extra execution time after they enter the background. However, UIKit does grant execution time to apps that support any of the following time-sensitive capabilities:
* Audio communication using AirPlay, or Picture in Picture video.
* Location-sensitive services for users.
* Voice over IP.
* Communication with an external accessory.
* Communication with Bluetooth LE accessories, or conversion of the device into a Bluetooth LE accessory.
* Regular updates from a server.
* Support for Apple Push Notification service (APNs).
> Enable the Background Modes capability in Xcode if your app supports background features.
Keeping an SSH session alive is barely outside of the existing use cases. Long-running export jobs and things like that would need a new use case defined, perhaps with QoS definitions.
[1] https://developer.apple.com/documentation/uikit/app_and_envi...
[2] https://developer.apple.com/documentation/uikit/app_and_envi...