PerformFetchWithCompletionHandler called twice when simulating with Xcode PerformFetchWithCompletionHandler called twice when simulating with Xcode ios ios

PerformFetchWithCompletionHandler called twice when simulating with Xcode


I got around this issue by declaring a static boolean in the App Delegate, and then using the boolean to get the background fetch to perform once

if (!runOnce){    [submission startSubmissionProcessWithCompletetionHandler:^(UIBackgroundFetchResult result){        NSDate *fetchStart = [NSDate date];        completionHandler(result);        NSDate *fetchEnd = [NSDate date];        NSTimeInterval timeElapsed = [fetchEnd timeIntervalSinceDate:fetchStart];        NSLog(@"Background Fetch Duration: %f seconds", timeElapsed);    }];    runOnce = YES;}else{    completionHandler(UIBackgroundFetchResultNoData);    runOnce = NO;}