Relaunch for background uploads not working as expected

Hello,

tldr; relaunch for background uploads isn't working as expected.

I'm testing my code on iPad OS 14.6 and XCode 12.5.1. Background app refresh is ON on my device for my app.

A background file upload is being setup with URLSession. The URL session is created as soon as the app starts up and not lazily created. See URL session configuration below.

I have followed the test instructions as outlined here: https://developer.apple.com/forums/thread/14855, specifically launching my app not via Xcode but from the home screen and adding an exit() call after the app enters the background in the AppDelegate callback method applicationDidEnterBackground. The file transfer is initiated before the app enters the background.

Here's the configuration code I'm using:

let configuration = URLSessionConfiguration.background(withIdentifier: <unique_identifier>)
    configuration.sessionSendsLaunchEvents = true
    configuration.sharedContainerIdentifier = <container group identifier>
    configuration.isDiscretionary = false
    configuration.timeoutIntervalForResource = 3600 * 24 * 2 // wait for 2 days before timing out connections
          
    urlSession = URLSession(configuration: configuration, delegate:self, delegateQueue: nil)

The file in fact finishes uploading but the app isn't relaunched as one would expect. As soon as I re-open the app from the home screen, I get the requisite callbacks about the upload having completed properly.

In the past when I have tested my code, the method AppDelegate:handleEventsForBackgroundURLSession used to be called after the upload finishes. That appears to no longer be the case.

Any guidance/help will be hugely appreciated!

Thanks Krishna

Answered by krissb78 in 683051022

Ok false alarm. While I had background app refresh enabled at the app level, it wasn't enabled at the global level. As soon as I did that, it's all working as expected. whew.

Accepted Answer

Ok false alarm. While I had background app refresh enabled at the app level, it wasn't enabled at the global level. As soon as I did that, it's all working as expected. whew.

Relaunch for background uploads not working as expected
 
 
Q