Исходная выборка 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.: - (
Ответы
Ответ 1
Здесь единственный способ проверить фоновый выбор.
- Отредактируйте свою схему.
- Выберите "Выполнить"
- Выберите "Параметры"
- Установите флажок "Запуск из-за события фоновой выборки"
- Подключите устройство iOS и запустите приложение на нем. Он не работает в iOS Simulator.
![Visual of Step 2-4]()
Ответ 2
Взгляните на примечание к выпуску XCode: https://developer.apple.com/library/ios/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html
"Команда меню Xcode Синтаксическая фоновая выборка не работает.
Вместо этого используйте команду меню в iOS Simulator. (20145602) "
Ответ 3
Вы можете создать свое собственное уведомление о возврате фонового изображения вашему реальному устройству через Houston
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData)
- Запустите терминал и используйте
для обычного 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 выполняет свою работу. Он работает даже на симуляторе.