3

問題

リリース アプリ バージョンのサイレント通知を送信すると、次のログが表示されます。 SpringBoard[48] <Warning>: High Priority Push: [Bundle ID] - BAR Disabled

何か案が?バー無効?? 「BAR Disabled」ログが表示された場合、メソッド (didReceiveRemoteNotification - fetchCompletionHandler) が呼び出されていないようです。

より詳しい情報

  • テスト済みの iPhone 4s および iPhone6 の本番アプリに BAR 無効ログが表示される
  • BAR Disabled Log はテスト済みの iPhone5 に表示されず、fetchCompletionHandler が呼び出されます。
  • BAR 無効 デバッグ中にログが表示されません。
  • BAR が無効なログがパラメータ「content-available」:1 で表示される
  • Swift と 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

4

1 に答える 1

3

BAR Disabled は、アプリのバックグラウンド更新が有効になっていないため、アプリが fetchCompletionHandler を実行できないことを意味します。

デバイスから [設定] > [一般] > [アプリのバックグラウンド更新] に移動し、[アプリのバックグラウンド更新] をオンにします。 アプリ スイッチャーからアプリを終了すると、再度開く前に、新しいコンテンツを実行または確認できない場合があります。

アプリのバックグラウンド更新 (BAR) に関する詳細情報:

これは、10 分間の猶予期間外でも機能するまったく別の機能です。BAR が有効になっているアプリは、アプリ スイッチャーから終了するか、電話が再起動/再起動するまで、時々起動することができます。ここには 10 分の制限はありません。BAR はバックグラウンドとは異なることを理解することが重要です。「目を覚ます」とは、「眠そうな目を開けて何かをダウンロードしてから、すぐに眠りにつく」ことを意味します。アプリ スイッチャーからアプリを強制終了すると、その BAR 権限も失われます。

通常、BAR 対応のアプリは、自分自身を更新するために適切なタイミングで起動するようにスケジュールされています。これらの瞬間は次のとおりです。

  • デバイスがアクティブに使用されているとき
  • デバイスが Wi-Fi や電源に接続されている場合
  • アプリのプッシュ通知を受信したとき
  • 場所が変わるとき

Apple 自身から: iOS はデバイスの使用状況に基づいてパターンを学習し、バックグラウンドでアプリをいつ BAR 更新する必要があるかを予測しようとします。また、デバイスが通常非アクティブな時間帯 (夜間など) を学習して、デバイスが使用されていないときの更新頻度を減らします。

/u/Niruga によって共有された情報のおかげで、アプリが BAR 更新のためにアプリをウェイクアップするために利用できる、いわゆる「サイレント」プッシュ通知もあります。サイレント プッシュ通知はユーザーには表示されません。

たとえば、Dropbox は BAR と位置情報を利用して、アップロードが完了するまで 10 分を超えても写真のアップロードを継続します。BAR が行うことではないため、常にアップロードするわけではありません。Dropbox で何が起きているかというと、場所の変更を使用してアプリを起動し、スリープ状態に戻る前に 10 分間アップロードし、次の場所の変更を待ってアプリを再び起動し、中断したところから続行します。 、すべてのアップロードが完了するまで繰り返します。ユーザーはアプリをフォアグラウンドで開いたままにする必要はありません。

BAR を有効にするかどうかを決定するには、アプリ開発者がこの機能を悪用しないと信頼できるかどうかを検討してください。

それが役に立てば幸い。

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

于 2016-04-13T11:55:47.903 に答える