3

ПроблемаSpringBoard [48] <Warning>: высокий приоритет Нажмите: [Bundle ID] - BAR Disabled

Отправка молчащие уведомлений для приложения релиз версии показывает следующий лог: SpringBoard[48] <Warning>: High Priority Push: [Bundle ID] - BAR Disabled

Любая идея? BAR Disabled ?? Похоже, когда появляется журнал «BAR Disabled», метод (didReceiveRemoteNotification - fetchCompletionHandler) не вызывается.

Подробнее

  • BAR Отключено Log появляется в версии приложения в тестируемых iphone 4s и iphone6 ​​
  • BAR Отключено Log не появляется в тестируемой iPhone5 и fetchCompletionHandler называется.
  • BAR Disabled Log не отображается во время отладки.
  • BAR Отключено Log появляется с PARAM "контента доступны": 1
  • Испытано с быстрым и Objective-C
  • Испытано с профилем распределения (testflight) & АПЧРК профиля (Itunes)
  • IOS версии 9.3.1

Уведомление

{"aps":{"alert":"Test","sound":"default","content-available":1}, "data" : 345}

Результат

Отображает уведомление с текстом «Test» и играет звук по умолчанию, но fetchCompletionHandler не вызывается, только журнал: SpringBoard[48] <Warning>: High Priority Push: [Bundle ID] - BAR Disabled

ответ

3

BAR Отключено означает, что фоновое приложение обновления не включена поэтому приложение не может выполнить fetchCompletionHandler.

На устройстве перейдите в «Настройки»> «Основные»> «Фон». Обновите и включите «Обновление фонового приложения». Если вы покинете приложение из коммутатора приложений, возможно, он не сможет запустить или проверить новый контент, прежде чем открывать его снова.

Подробнее о фоновом обновлении (BAR):

Это совершенно другая вещь, которая работает за пределами 10 минут льготного периода. Приложение с включенным BAR разрешено просыпаться время от времени, пока оно не прекратится с помощью переключателя приложений или перезагрузки/перезагрузки телефона. Здесь нет 10-минутного ограничения, и важно понимать, что BAR отличается от фонового. «Просыпаюсь», я имею в виду «открывает сонный глаз и загружает кое-что, а потом снова спит». Если вы убьете приложение из переключателя приложений, его привилегия BAR также исчезнет.

Приложения с поддержкой BAR, как правило, планируют просыпаться в подходящие моменты, чтобы обновить себя.Эти моменты включают в себя:

  • когда устройство активно используется
  • , когда устройство подключено к Wi-Fi и/или источник питания
  • когда толчок уведомление для приложения получено
  • когда местоположение изменения

От самих Apple: iOS изучает шаблоны на основе вашего использования устройства и пытается предсказать, когда приложение должно быть обновлено BAR в фоновом режиме. Он также узнает, когда устройство обычно неактивно, например, ночью, чтобы уменьшить частоту обновления, когда устройство не используется.

Благодаря информации, предоставленной/u/Niruga, есть также то, что называется «тихим» push-уведомлением, которое приложения могут использовать, чтобы разбудить их приложение для обновлений BAR. Пользователь не видит молчащих push-уведомлений.

Например, Dropbox использует BAR и местоположение, чтобы сохранить свою загрузку фотографий за последние 10 минут до тех пор, пока требуется, чтобы завершить загрузку. Он не будет постоянно загружаться, так как это не то, что делает BAR. Итак, что происходит в Dropbox, так это то, что он использует изменения местоположения, чтобы приложение просыпалось и загружалось в течение 10 минут, пока оно не вернется спать, а затем ждет следующего изменения местоположения, чтобы приложение снова просыпалось и продолжалось там, где оно остановилось , и повторять до тех пор, пока не будет выполнена вся загрузка, все, без необходимости открывать приложение на переднем плане.

Чтобы решить, следует ли включать BAR, подумайте, доверяете ли вы разработчикам приложений не злоупотреблять функцией.

Надеюсь, что это поможет.

ref: https://www.reddit.com/r/jailbreak/comments/3eao32/discussion_write_up_ios_backgrounding_and/