Подтвердить что ты не робот

Исходная выборка iOS не работает, даже если настроен правильный фоновый режим

Мое приложение имеет фоновые режимы, включенные с фоновой выборкой, и я проверил, что plist включает соответствующий режим выборки.

Я также настроил интервал следующим образом:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum);
    return true;
}

И я добавил обработчик следующим образом:

func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
    // Get some new data here
    completionHandler(UIBackgroundFetchResult.NewData);
}

Я попытался перейти в Debug- > Simulate Background Fetch, но независимо от того, что он никогда не входит в performFetchWithCompletionHandler. Я также попытался запустить приложение по схеме, в которой отмечена опция "Запуск из-за фоновой выборки". Запуск по этой схеме просто запускает приложение, как обычно, в симуляторе без вызова performFetchWithCompletionHandler.

Любые идеи?

Спасибо!

РЕДАКТИРОВАТЬ: Это, похоже, влияет и на версию версии моего приложения, поэтому она не может быть изолирована от симулятора. Я запускаю Swift 1.2.

РЕДАКТИРОВАТЬ 2: Мой отчет об ошибке был просто закрыт, потому что это дубликат другого отчета об ошибке, в котором излагается одна и та же проблема. До сих пор нет информации, подтверждающей, что проблема изолирована от симулятора.

РЕДАКТИРОВАТЬ 3: Нет упоминания об исправлении в примечаниях к выпуску версии Xcode 6.4 Beta 2.: - (

4b9b3361

Ответ 1

Здесь единственный способ проверить фоновый выбор.

  • Отредактируйте свою схему.
  • Выберите "Выполнить"
  • Выберите "Параметры"
  • Установите флажок "Запуск из-за события фоновой выборки"
  • Подключите устройство iOS и запустите приложение на нем. Он не работает в iOS Simulator.

Visual of Step 2-4

Ответ 3

Вы можете создать свое собственное уведомление о возврате фонового изображения вашему реальному устройству через Houston

func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)

  1. Запустите терминал и используйте

для обычного push-уведомления: apn push "<your_device_token>" -c /path/to/apple_push_notification.pem -m "Hello from the command line!"

для уведомлений push fetch для фона: apn push "<your_device_token>" -c /path/to/apple_push_notification.pem -n

Дополнительные параметры для apn приложения:

  c.option '-m', '--alert ALERT', 'Body of the alert to send in the push notification'
  c.option '-b', '--badge NUMBER', 'Badge number to set with the push notification'
  c.option '-s', '--sound SOUND', 'Sound to play with the notification'
  c.option '-y', '--category CATEGORY', 'Category of notification'
  c.option '-n', '--[no]-newsstand', 'Indicates content available for Newsstand'
  c.option '-d', '--data KEY=VALUE', Array, 'Passes custom data to payload (as comma-delimited "key=value" declarations)'
  c.option '-P', '--payload PAYLOAD', 'JSON payload for notifications'
  c.option '-e', '--environment ENV', [:production, :development], 'Environment to send push notification (production or development (default))'
  c.option '-c', '--certificate CERTIFICATE', 'Path to certificate (.pem) file'
  c.option '-p', '--[no]-passphrase', 'Prompt for a certificate passphrase'

Ответ 4

В Xcode 8.3.2 эта проблема не существует. Debug- > Simulate Background Fetch выполняет свою работу. Он работает даже на симуляторе.