0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter/Firebase】iOSのプッシュ通知実装でハマったこと備忘録(おうちログ開発)

Posted at

【Flutter】Firebase Messagingを使ったiOSプッシュ通知の実装手順

はじめに:開発しているアプリ「おうちログ」について

この記事では、私が開発している**家族やパートナーのための共有アプリ「おうちログ」**に、FlutterとFirebase Cloud Messaging (FCM) を使ってiOSのプッシュ通知機能を実装した際の、具体的な設定手順と、その確認方法をまとめます。
おうちログ - App Store

Androidでは比較的スムーズに実装できましたが、iOSでは特有の設定が多く必要でした。ここではその手順をシンプルに紹介します。


1. Apple Developerサイトでの設定

FirebaseからAPNs(Apple Push Notification service)経由で通知を送るための認証キーを設定します。

  • APNs認証キーの作成

    1. Apple Developerサイトにログインし、「Certificates, Identifiers & Profiles」へ移動
    2. 「Keys」セクションで「+」を押し、キーを作成
    3. 「Apple Push Notifications service (APNs)」にチェックを入れる
    4. 作成した認証キー(.p8ファイル)をダウンロードする (一度しかダウンロードできないので注意)
    5. 「キーID」と「チームID」を控えておく
  • Firebaseへのキー登録

    1. Firebaseコンソールのプロジェクト設定 > 「クラウドメッセージング」タブを開く
    2. 「Appleアプリの構成」で、ダウンロードした.p8ファイルと、控えておいたキーID、チームIDを登録する

2. Xcodeプロジェクトでの設定

アプリがプッシュ通知を受け取れるように、Xcodeで権限を有効化します。

  • ios/Runner.xcworkspace をXcodeで開く
  • Runner > 「Signing & Capabilities」タブを開く
  • Capabilityの追加
    1. 「+ Capability」をクリックし、「Push Notifications」を追加する
    2. もう一度「+ Capability」をクリックし、「Background Modes」を追加する
    3. 追加された「Background Modes」の中から、「Remote notifications」にチェックを入れる

3. 実装の確認方法

上記の設定が完了したら、実際に通知が届くかテストします。(※ iOSシミュレータはプッシュ通知に対応していないため、必ず実機でテストしてください)

  • FCM登録トークンの取得

    1. Xcodeで、実機をターゲットにしてアプリを実行します。
    2. 実行後、XcodeのコンソールログにFCM登録トークンが出力されます。このトークンはテストに必要なのでコピーしておきます。

    もしトークンが見つからない場合は、AppDelegate.swiftdidRegisterForRemoteNotificationsWithDeviceTokenメソッド内に以下のコードを追加すると、FCMトークンを確実に取得・表示できます。

    // APNsへの登録が成功した場合
    override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
        Messaging.messaging().apnsToken = deviceToken
        
        // FCMトークンを取得してコンソールに出力
        Messaging.messaging().token { token, error in
            if let error = error {
                print("❌ Error fetching FCM registration token: \(error)")
            } else if let token = token {
                print("✅ FCM registration token: \(token)")
            }
        }
    }
    
  • Firebaseコンソールからテスト通知を送信

    1. Firebaseコンソールの左側メニューから「エンゲージメント」>「Messaging」を選択します。
    2. 「最初のキャンペーンを作成」または「新しいキャンペーン」をクリックし、「通知」を選択します。
    3. 通知のタイトルと本文を適当に入力し、「テストメッセージを送信」をクリックします。
    4. 「FCM登録トークンを追加」の欄に、先ほどコピーしたデバイスのFCMトークンを貼り付けます。
    5. 「テスト」ボタンをクリックします。

実機のアプリに通知が届けば、設定は成功です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?