Is there are way we can continue the app in the background for a life-critical application?

We are developing an iOS app for our Computer Aided Dispatch system which is used by dozens of major police and other first responder agencies in the US. One of the required functionalities is that the device provide very frequent position updates, even when in the background (requirement is every 5 seconds, might be able to talk it down a bit...). Among other reasons, this is so an officer on foot would accurately appear on the maps of other officers. This data is critical to assisting the officers in (for example) not accidentally shooting each other by accident.

  We also very much would like to keep a websocket open even when in the background as well, as this is used to keep the device up to date on the positions of the other officers, so that the map is up to date when they return to the app.

 We understand this is going to be a major hit to battery life (especially frequent GPS updates), but the agencies understand this and are willing to deal with it in order to support these life-critical functionalities. Is there any way to enable this, or are we totally out of luck. The inability to do this is going to present our iOS app in a very bad light compared against the Android version.

Yes, you can get location updates in the background, that's standard. I think they continue to come in at 1 per second but I'm not sure about that. In theory it may get terminated if some foreground app needs all the RAM and your app is using lots, but in practice I don't think that happens often; it may be more likely that your app crashes while it's in the background and the user doesn't notice.

I don't know about sockets. That may be more difficult. You may need to use push notifications.

But, reading you post something else occurred to me. Are you aware of the terms in the developer agreement regarding safety-critical apps?

E.g. section 3.3.13 - "Applications that use Location APIs .... may not be designed or marketed for ... emergency or life-saving purposes"

and section 12: "... APPLE SOFTWARE ... NOT SUITABLE FOR USE IN SITUATIONS ... WHERE ERRORS ... COULD LEAD TO DEATH".

Is this something that you just ignore?

I ask because I sometimes get questions from users who seem to be using my map apps in emergency-services type applications, and I wonder what I should tell them!

Is there are way we can continue the app in the background for a life-critical application?
 
 
Q