コンテンツにスキップ

FAQ

iOSのRichFlyer SDKに関する質問を掲載します。

プッシュ通知が届きません。どこを確認すれば良いですか?

プッシュ通知が届かない場合、複数の要因が考えられます。主な要因を以下に記載します。

端末側

実装側

  • デバイストークンが取得できていない。(取得時の処理)
    ※アプリで通知の受信を許可した後に、UIApplicationDelegateクラスのapplication:didRegisterForRemoteNotificationsWithDeviceToken:メソッドを通じてデバイストークンが渡されます。ここが呼ばれない場合、端末がインターネットにつながっていない等の原因が考えられます。
  • SDK実行キーが正しく設定されていない。(設定方法)

    以下の手順でSDK実行キーが正しく設定されているか確認できます。

    1. SDKを組み込んだアプリをインストールして立ち上げる。(必要な場合は、プッシュ通知の受信許可を行う。)
    2. RichFlyer管理サイトのメッセージ作成画面を表示して、配信先を選択する。
    3. 「配信予定数」が増えていれば、正しく設定されている。

  • 管理サイトに設定したAPNsの認証情報に使われているApp IDやBundle IDとXcodeに設定しているBundle IDが異なる。(管理サイト側の確認方法)

  • ワイルドカードが含まれるApp IDで作成したプロビジョニングプロファイルを使用している。


プッシュ通知を長押ししても画像や動画の再生画面が正しく表示されません。

以下をご確認ください。

  • App IDに設定されているGroupIdが正しく設定されている。
    アプリ本体
    App Extension
    初期化
    受信時処理

  • Notification Content Extension のInfo.plistが正しく設定されている。
    ※"NSExtension" -> "NSExtensionAttributes" -> "UNNotificationExtensionCategory"の値が "RichFlyer" になっている必要があります。
    Info.plistの設定

本番環境でテスト通知をしたいです。

以下のいずれかの方法で確認できます。

  • テスト通知を受ける端末を特定のセグメントに属するようにアプリ側で実装する。
    App Storeで配信済みのアプリに対してテスト通知を行いたい場合に行う方法です。
    あらかじめアプリにテスト用セグメントに属するための仕組みを一般ユーザーに見えない形で組み込んでおきます。
    テスターは、この仕組みを利用してアプリを操作し端末をテスト用セグメントに属するようにします。
    管理サイトでは、このセグメントを利用してテスト用の配信条件を作成しておき、テスト用のメッセージにこの条件を指定します。
    セグメントの設定方法
    配信条件の作成方法(管理サイト)

    誤配信に注意してください

    この方法は誤配信のリスクが高くなります。
    配信条件の指定を忘れると一般ユーザーへも通知が届いてしまいます。承認機能を活用するなどして誤配信が行われないよう注意して実施してください。


  • テスト用のサービス作成し、テスト用のアプリとして作成する。
    管理サイト上でテスト用のサービスを作成してテストを実施する方法です。
    RichFlyer SDKに指定するSDK実行キーを変更するだけで、アプリの実装やBundle IDの変更は不要なため一般に公開しているアプリと同等のアプリでテストが行えます。
    一般配信済みのアプリには通知されないため誤配信のリスクは低いです。
    サービスの作成について(管理サイト)
    SDK実行キーの設定

  • Sandbox(開発)環境用にアプリを作成する。
    Appleが用意しているプッシュ通知のテスト環境で行う方法です。
    開発用のプロビジョニングプロファイルを使用し、RichFlyer SDKにSandboxフラグを指定します。
    アプリの実装やBundle IDの変更は不要なため一般公開しているアプリと同等のアプリでテストが行えます。
    Sandboxフラグの設定
    プロビジョニングについて

    管理サイト


プッシュ通知を受信するたびにバッジの数字が増えますが、1に固定したいです。

RichFlyerでは、プッシュ通知を受信すると通知センターに残っている未読の通知の件数をバッジに表示しています。
特定の数値に固定したい場合は、こちらの方法で実現できます。