В Xcode 7.0.1 команда "emulate background" fetch вызывает срабатывание performFetchWithCompletionHandler в два раза.
Является ли это ошибкой отладки Xcode, или это может произойти на устройстве, на котором установлена версия выпуска приложения.
  Обновление
Теперь у нас есть Xcode 7.1.1, а еще performFetchWithCompletionHandler вызывается дважды. Поскольку я не уверен, что это также происходит "в дикой природе", я сохраняю состояние, если мое действие выборки уже запущено.
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler {
    if (self.performingFetch) {
        return completionHandler(UIBackgroundFetchResultNoData);
    }
    self.performingFetch = YES;
    ...
    self.performingFetch = NO;
}