My app has background modes enabled with Background Fetch checked and I validated the plist includes the appropriate fetch mode.
I have also configured the interval as follows:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum);
return true;
}
And I have added the handler as follows:
func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
// Get some new data here
completionHandler(UIBackgroundFetchResult.NewData);
}
I tried going to Debug->Simulate Background Fetch, but no matter what it never enters the performFetchWithCompletionHandler
. I also tried to run the app under a scheme that has the "Launch due to a background fetch event" option checked. Running under this scheme simply launches the application as usual in the simulator with no call to performFetchWithCompletionHandler
.
Any ideas?
Thank you!
EDIT: This appears to be affecting the release version of my app as well so it may not be isolated to the simulator. I am running Swift 1.2.
EDIT 2: My bug report was just closed because it is a duplicate of another bug report outlining the same issue. There is still no information confirming the issue is isolated to the simulator.
EDIT 3: No mention of a fix in the Xcode 6.4 Beta 2 release notes. :-(
Here's the only way I've found to test background fetch.