次の方法で共有


iOS 向けプッシュ通知

前提条件

このチュートリアルでは、「プッシュ通知のクイック スタート」で説明する概念を理解している前提としています。

Apple の通知チャンネルを構成する

  1. アクティブな iOS 開発 (APNS_SANDBOX) 証明書または本番 (APNS) 証明書があることを確認します。 証明書がない場合は、[証明書、ID、プロファイル] の下にある [Apple デベロッパー ポータル] で作成します。

Apple が APNS 証明書を要求する場合

  1. 目的の証明書をエクスポートします (開発または本番)。
    • まず、[証明書、ID、プロフィール] の下の [Apple デベロッパー ポータル] から証明書のコピーをダウンロードします。 .cer ファイルが作成されます。

    • 証明書を開いて、キーチェーン アクセスにインストールします。

    • インストール済みの証明書を [証明書] サブカテゴリの下に表示します。

    • キーチェーン アクセス証明書を、.p12 形式でエクスポートします。

      Apple はキーチェーン アクセス証明書をエクスポートします

    • 次のコンソール コマンドを使用して、.p12 ファイル .pem ファイルに変換します。

      • openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
    • .pem ファイルを所有している場合、PlayFab ゲーム マネージャー を通じて直接アップロードすることができます。ゲーム マネージャーは、タイトルの設定>プッシュ通知の下にあります。

    • または、以下のジェネレーターを使用して、SetupPushNotification の JSON 要求を行います。

SetupPushNotification の JSON リクエスト ジェネレーター

リクエスト ジェネレーターは次の情報を使用して、JSON リクエストを作成します。

  • プラットフォーム -次のいずれかの値を使用します: APNS (iOS)、APNS_SANDBOX (iOS)、GCM (Android)
  • アプリケーション名- メッセージを送信するアプリケーションの名前を入力します。

注意

アプリケーション名は、大文字と小文字の ASCII 文字、数字、アンダースコア、ハイフン、ピリオドのみで構成され、1 から 256 文字の長さである必要があります。 これらもまた一意である必要があります。

  • PEM 証明書/ API キー - iOS (APNS または APNS_SANDBOX) の場合は、PEM ファイルの全内容を使用します。

JSON が生成されたら、JSON を使用して SetupPushNotification の呼び出しを実行します。 応答は次の例のようになります。

{
    “code” : 200,
    “status” : “OK”,
    “data” :
        {
             “ARN” : “arn:*******/GCM/your_game_name”
        }
}

完了です! タイトルの iOS メッセージング チャネルを設定しました。

iOS クライアントをプッシュ登録する

iOS の場合、PlayFab は現時点では Unity のネイティブ実装を提供していないため、iOS がプッシュ通知を処理する方法の既定の動作に依存する必要があります。

既定では、ゲームがバックグラウンドにある間に受信された通知は、通知エリアにルーティングされます。

あるいは、ゲームのアプリがアクティブである間に受信された通知は、通知領域に表示されません。

  • サンプルの次のコードが client Start() で実行されています。
// must be called before trying to obtain the push token
// an asynchronous call with no callback into native iOS code that takes a moment or two before
// the token is available. (so spin and wait, or call this one early on)
// this will always return null if your app is not signed
UnityEngine.iOS.NotificationServices.RegisterForNotifications(UnityEngine.iOS.NotificationType.Alert | UnityEngine.iOS.NotificationType.Badge | UnityEngine.iOS.NotificationType.Sound, true);
  • この時点で、ユーザーが通知を選択した場合は、PlayFab API RegisterForIOSPushNotification を呼び出すことができます。
byte[] token = UnityEngine.iOS.NotificationServices.deviceToken;
if(token != null)
{
    RegisterForIOSPushNotificationRequest request = new RegisterForIOSPushNotificationRequest();
    request.DeviceToken = System.BitConverter.ToString(token).Replace("-", "").ToLower();
    PlayFabClientAPI.RegisterForIOSPushNotification(request, (RegisterForIOSPushNotificationResult result) =>
    {
        Debug.Log("Push Registration Successful");
    }, OnPlayFabError);
}
else
{
    Debug.Log("Push Token was null!");
}
  • エラーが発生しなければ成功です! iOS クライアントはタイトルの Apple 通知チャンネルに正常にリンクされました。

iOS のトラブルシューティング

  • 有効な .pem ファイルがあることを確認してください
  • SetupPushNotification で使用したのと同じ証明書が XCode によって、アプリの署名に使用されていることを確認します。
  • プッシュ通知 API が XCode のビルドに対して有効になっていることを確認します。
  • 署名証明書が PlayFab プラットフォームと一致することを確認します。 SetupPushNotification を実行している場合、OverwriteOldARN = true を使用してチャネルを新しいプラットフォームに再結合します。 特定の時点で、タイトルでアクティブにできる iOS 環境 (APNS または APNS_SANDBOX) は 1 つだけです。

その他のサポート

ヘルプ、バグの例、関連する質問については、フォーラムにご連絡ください。

注意

現時点では、このドキュメントで説明されている標準的なフローのみが当社のサービスに対応しています。 チームが他の一般的なプッシュ サービスやプラグインで追加機能を探している場合、当社にご連絡ください。 当社は、デベロッパー コミュニティーからのフィードバックをお待ちしています。