There are many questions on the topic of running an iOS app in the background, but I'd like to use this question to clarify a few points.
First, if you are going to submit your app to the app store, you can only run in the background as an audio/voip/location/airplay app. You can also receive push notifications.
However, if you are developing an enterprise app, or otherwise don't have to worry about getting approval for the app store, do any additional options become available? There are two cases I want to explore:
- Running an app in the background constantly (processing or transmitting data)
- Scheduling an app to start a process at a given time
Bonus: If #2 and the app is closed, is it possible to start the app?