web-dev-qa-db-ja.com

Firebase Push通知がiOSの本番環境で機能しない

Firebase Messaging SDKをiOSプロジェクトに統合し、開発用のプッシュ通知証明書と本番用のプッシュ通知証明書を作成し、両方のp12キーをFirebaseにアップロードしましたが、通知を受信せず、開発のみを目的としています。

登録用のコードは良好で、通常のAPNSで使用したものと同じで問題なく動作しました。

同じ動作が3つのアプリケーションで発生します。

他の誰かがこの問題に遭遇しましたか?解決策や提案はありますか?

13

まず、エクスポートする証明書を確認します。典型的な誤りは、サービスではなく秘密鍵をエクスポートすることです。スクリーンショットを添付しました。これで時間を節約できることを願っています。

エクスポートする正しい証明書

8
Yuriy

同じ問題がありました。どうやら、Firebaseのドキュメントにエラーがあります。 APN証明書を本番用にエクスポートする場合キーチェーンから.p12ファイルに実際の証明書を選択してくださいではありません秘密鍵

クラウドメッセージングAPN証明書の設定で、この.p12ファイルをFirebaseコンソールにアップロードしてください。

Swift 4.

また、使用していることを確認してください:

Messaging.messaging().setAPNSToken(deviceToken as Data, type: .prod)

内部:

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

    #if DEVELOPMENT
        //Develop
        Messaging.messaging().setAPNSToken(deviceToken as Data, type: .sandbox)
    #else
        //Production
        Messaging.messaging().setAPNSToken(deviceToken as Data, type: .prod)
    #endif

}
31
andrew_b

私にとって、これらの手順は本番環境での同じ問題を解決しました:

  1. Apple Developer portalに移動しますキー->キーを追加 enter image description here

  2. キーをダウンロードし、キーIDパラメータをコピーします

  3. Firebaseコンソールを開く->プロジェクト設定->クラウドメッセージング
  4. ダウンロードした(ステップ2).p8キーをここにアップロードします: enter image description here
  5. 新しいウィンドウに、必要に応じてキーIDパラメータとアプリIDプレフィックスを貼り付けます
2
Diana

私はそれを次の手順で機能させました:

  1. Apple開発者ポータルからプロファイルを再生成します
  2. 古いものを削除します
  3. Firebaseコンソールで新しいプロファイルを更新する
  4. AppDelegateをUNUserNotificationCenterDelegateプロトコルに適合させる
  5. APNSへのすべての登録が正しく行われていることを確認してください(これを行う方法についてのチュートリアルがたくさんあります)
  6. アプリの起動時にconfigureFirebaseを呼び出したことを確認してください
  7. Firebaseコンソールからメッセージを送信する

ステップ4が違いをもたらすようです。

0