iOS 11のアプリにサイレントプッシュが配信されない
iOS 11ベータ2ではapplication:didReceiveRemoteNotification:fetchCompletionHandler、アプリの状態(バックグラウンド/フォアグラウンド)に関係なく、サイレント通知が配信されないことに気付きました。 私はUIApplicationDelegeteメソッドを実装しapplication:didReceiveRemoteNotification:fetchCompletionHandler、次のサイレントプッシュを送信します { "aps": { "content-available": 1 }, "mydata": { "foo": "bar" } } ただし、デリゲートメソッドはiOS 11では呼び出されません。 他のバージョンのiOSでは正常に機能し、ドキュメントのセクション「サイレント通知の構成」では、他に何をすべきかについては触れられていません。 これはiOS 11のバグですか、それともiOS 11の新しい機能がありませんか? UserNotificationサイレントプッシュの送信に必要ないはずのフレームワークについては話していません。 これは問題を説明するサンプルプロジェクトです(独自のバンドルIDを設定する必要があります) サンプルプロジェクトを昼食して上記のペイロードをアプリに送信すると、macOSコンソールを使用して、プッシュがデバイスに正しく配信されているがアプリには配信されていないことを確認できます。 アップデート10.08 動作はランダムなようです。デバイスを再起動した後、ペイロードが正しく配信されることがありますが、しばらくすると動作しなくなります。 次のスクリーンショットでわかるように、1とマークされたプッシュはデバイスにのみ配信され、プッシュ2(デバイスの再起動後)もアプリに配信されます。 アップデート14.08-iOS 11 Beta 6 まだ同じ行動。正常に機能するはずであるが、機能しない別のものは次のとおりです。アプリケーションのスキームが「実行可能ファイルの起動を待機する」に設定されている場合、サイレントプッシュはアプリを起動し、バックグラウンドで起動することになっています。 アップデート21.08-iOS 11 Beta 7 バグレポートのアップルからのアップデートではなく、同じ動作です。 アップデート29.08-iOS 11 Beta 8 まだ同じ問題。現在使用している再現手順は次のとおりです。 Xcodeプロジェクトスキームで、[実行可能ファイルの起動を待つ]を選択します。 にブレークポイントを追加します didReceiveRemoteNotification: fetchCompletionHandler デバイスでアプリを起動します 上記のサイレントプッシュを送信する 予想:アプリが一時停止状態からバックグラウンドになり、didReceiveRemoteNotification: fetchCompletionHandler呼び出されます …