私のアプリはFirebaseを使用しています。シミュレーターで実行されているアプリにプッシュ通知を送信しようとしています。 iOS 10 Simulatorでアプリを実行すると、InstanceIDトークンが正常に生成されますが、次の警告が表示されます
通知はシミュレータではサポートされていません。
Stackoverflowのどこかで、iOS 10シミュレータでプッシュ通知を送信することが可能であると読みました。本当ですか?
シミュレーター内でプッシュ通知を取得することはできません。ただし、通知ディクショナリを使用して、ボタンまたはapplication(_ application:UIApplication、didReceiveRemoteNotification userInfo:[AnyHashable:Any])を呼び出すものを作成することにより、プッシュ通知の取得をシミュレートできます。これは、プッシュの最終的な形式が想定どおりであることをテストするためにデバイスに展開する前に、残りのロジックが機能していることをテストするのに役立ちます。
2つのこと:
シミュレータでプッシュ通知をテストすることはできません。したがって、iPhoneデバイスでのみテストする必要があります。追加情報:デバイスでローカルにプッシュ通知をテストしたい場合は、 プッシュ通知のテスト を使用してみてください
「iOS 10シミュレータでプッシュ通知を送信することは可能です」と聞いたことがあります。 真ではありません、iOS 10では、アプリがフォアグラウンドにある場合でもローカル通知を表示できます。 iOS 10でサポートされている次のデリゲートメソッド "willPresentNotification"を使用します。これはシミュレータでテストできます。
これで、シミュレーターでプッシュ通知(サウンドとバッジのカウントを含む)を受け取ることができます
今では可能です!!!
Xcode 11.4ベータは、リモートプッシュ通知をサポートするシミュレータと共にリリースされます。
リモートプッシュをテストするには、単純にドラッグされたAPNSファイルをターゲットシミュレータにドラッグします。この方法では、ペイロードにSimulator Target Bundleキーを含める必要がありました。そうしないと、このエラーメッセージが表示されます。
「無効なプッシュ通知:ファイルに有効なJSONペイロードが含まれていないか、シミュレータターゲットバンドルキーがありません。」
したがって、ペイロードファイルは次のようになります。
{
"aps" : {
"alert" : {
"title" : “Namaste”,
"body" : “This is iOS development notification test“
},
},
"Simulator Target Bundle": "com.sarunw.example-xcode-11-4"
}
ターミナルでsimctlコマンドを実行すると、通知が送信されます。
xcrun simctl Push <device> <bundle-identifier> <path-to-apns-file>