問題
SDK バージョン 7.x.x で、プッシュ通知がデバイスに正常に配信されているにもかかわらず、プッシュキャンペーンのインプレッションがトラッキングされない、画像がレンダリングされないなど、プッシュ通知に関する一般的な問題が発生しています。- インプレッションをトラッキングするには、アプリに Notification Service Extension が実装されていることを確認してください。
- また、MoEngage ダッシュボードで Settings → Channel → Push → IOS に移動し、Show iOS impressions トグルを有効にしてください。

解決策
以下の手順を実行します。- 各構成について、プロジェクトのメインターゲットに app_group_id を追加する:
構成間で同じ app_group_id を追加することも、異なる app_group_id を追加することもできます。
構成で異なる Bundle Identifier を使用しながら同じ app_group_id を共有している場合、問題が発生する可能性があります。具体的には、Bundle Identifier が異なり app_group_id が同じ 2 つのアプリが同じデバイスにインストールされている場合、Notification Service Extension が失敗する可能性があります。 これを回避するために複数の構成で同じ app_group_id を使用できますが、その場合は 1 台のデバイスですべてのアプリを同時にテストできないことに注意してください。

- SDK の初期化時に app_group_id を追加する:
- info.plist を使用して SDK を初期化する場合は、info.plist ファイルの MoEngage キー内に APP_GROUP_ID キーを追加します。
- sdkConfig を使用して SDK を初期化する場合は、AppDelegate ファイル内の sdkConfig 変数に APP_GROUP_ID を追加します。
info.plist 内の app_group_id:
SwiftObjective-C - Notification Service Extension ターゲットを作成する:

- 拡張ターゲットに名前を付ける: 拡張ターゲットの名前を選択します。Swift は Objective-C プロジェクトともシームレスに連携するため、言語として Swift を推奨します。

- プッシュ通知を有効にする: 拡張ターゲットの Signing & Capabilities セクションで、Push Notifications を有効にし、AppGroupId を追加します。

- 最小デプロイ iOS バージョンを揃える: Notification Service Extension の最小デプロイ iOS バージョンが、メインアプリの iOS バージョンと一致していることを確認します。

- 拡張ターゲットに名前を付ける: 拡張ターゲットの名前を選択します。Swift は Objective-C プロジェクトともシームレスに連携するため、言語として Swift を推奨します。
- MORichNotification フレームワークを Notification Service Extension ターゲットに統合する: podfile で、Notification Service Extension を別のターゲットとして追加し、MORichNotification フレームワークをインストールします。
Swift
- NotificationService.swift ファイルのコード変更:
Swift
- メインアプリターゲットの Build Phases を確認する: メインアプリターゲットの Build Phases セクションで、Embed App Extensions / Embed Foundation Extensions セクションを見つけます。Copy only when installing オプションがオフになっていることを確認します。

- 構成間で appGroupId を統一する: プロジェクト内のすべてのスキームと構成(Debug/Release/QA/UAT など)で appGroupId が統一されていることを確認します。
- ビルド構成を揃える: プロジェクトを実行またはアーカイブする際は、メインターゲットと Notification Service Extension ターゲットの両方の Build Configuration が同じスキーム/構成を指していることを確認します。

