このページでは、一般的なエラーコードとその意味、それに対するアプリやゲームでの対応について説明します。
エラーコード | 説明 | 対応手順 |
---|---|---|
API_NOT_AVAILABLE |
Integrity API を使用できません。Integrity API が有効になっていないか、Play ストアのバージョンが古い可能性があります。 | 1)Google Play Console で、Play Integrity API が有効になっていることを確認します。2)Google Play ストアを更新するようにユーザーに依頼します。 |
NETWORK_ERROR |
利用可能なネットワークが見つかりませんでした。 | ネットワーク接続を確認するようにユーザーに依頼します。 |
PLAY_STORE_NOT_FOUND |
デバイス上に公式の Play ストア アプリが見つかりませんでした。 | Google Play ストアをインストールまたは有効にするようにユーザーに依頼します。 |
PLAY_STORE_VERSION_OUTDATED |
Play ストア アプリを更新する必要があります。 | Google Play ストアを更新するようにユーザーに依頼します。 |
PLAY_STORE_ACCOUNT_NOT_FOUND |
デバイス上に Play ストア アカウントが見つかりませんでした。Play Integrity API は未認証のリクエストをサポートするようになったことにご注意ください。このエラーコードは、サポート対象外の古いバージョンの Play ストアにのみ使用されます。 | Google Play ストアにログインするようにユーザーに依頼します。 |
CANNOT_BIND_TO_SERVICE |
Play ストアでサービスにバインドできませんでした。デバイスに古いバージョンの Play ストアがインストールされている可能性があります。 | Google Play ストアを更新するようにユーザーに依頼します。 |
APP_NOT_INSTALLED |
呼び出し元アプリがインストールされていません。 | なんらかの問題が発生しており、攻撃の可能性もあります。対応手順はありません。 |
PLAY_SERVICES_NOT_FOUND |
Play 開発者サービスを利用できないか、更新する必要があります。 | Play 開発者サービスをインストールまたは更新するようにユーザーに依頼します。 |
PLAY_SERVICES_VERSION_OUTDATED |
Play 開発者サービスを更新する必要があります。 | Google Play 開発者サービスを更新するようにユーザーに依頼します。 |
TOO_MANY_REQUESTS |
呼び出し元アプリからこの API へのリクエスト数が多すぎるため、スロットリングが行われています。 |
|
REQUEST_HASH_TOO_LONG |
指定された requestHash が長すぎます。requestHash の長さは 500 文字未満にする必要があります。 |
requestHash を短くして再試行します。 |
GOOGLE_SERVER_UNAVAILABLE |
Google サーバーの不明な内部エラーです。 | 指数バックオフで再試行します。 |
CLIENT_TRANSIENT_ERROR |
クライアント デバイスで一時的なエラーが発生しました。Kotlin と Java プログラミング言語のライブラリ バージョン 1.1.0 以降、Unity 用 Google Play Integrity プラグイン 1.1.0 以降、Play Core Native SDK 1.12.1 以降でサポートされています。 | 指数バックオフで再試行します。 |
INTERNAL_ERROR |
不明な内部エラーです。 | 指数バックオフで再試行します。 |
NONCE_TOO_SHORT |
ノンスが短すぎます。ノンスは、16 バイト以上(Base64 エンコード前)でなければなりません。 | ノンスを長くして再試行します。 |
NONCE_TOO_LONG |
ノンスが長すぎます。ノンスは、500 バイト未満(Base64 エンコード前)でなければなりません。 | ノンスを短くして再試行します。 |
NONCE_IS_NOT_BASE64 |
ノンスが「Base64、ウェブセーフ、ラップなし」形式ではありません。 | 正しいノンス形式で再試行します。 |
CLOUD_PROJECT_NUMBER_IS_INVALID |
指定された Cloud プロジェクト番号が無効です。 | Play Integrity API を有効にした Cloud プロジェクトの Cloud プロジェクト番号を使用します。 |
APP_UID_MISMATCH |
呼び出し元アプリの UID(ユーザー ID)がパッケージ マネージャーの UID と一致しません。 | なんらかの問題が発生しており、攻撃の可能性もあります。対応手順はありません。 |
ネイティブ固有のエラーコード
ネイティブのエラーコードの前には、名称の競合を避けるため、INTEGRITY_
接頭辞が付加されています。ネイティブ API には、上記のエラーコードとは別に、次のエラーコードもあります。
エラーコード | 説明 | 対応手順 |
---|---|---|
INTEGRITY_INITIALIZATION_NEEDED |
IntegrityManager が初期化されていません。 | 最初に IntegrityManager_init() を呼び出します。 |
INTEGRITY_INITIALIZATION_FAILED |
Integrity API の初期化中にエラーが発生しました。 | 指数バックオフで再試行します。バグの報告を検討してください。 |
INTEGRITY_INVALID_ARGUMENT |
Integrity API に無効な引数が渡されました。 | 正しい引数で再試行します。 |
エラー発生時にロジックを再試行する
特定のエラーコードが発生した場合、アプリは API 呼び出しを再試行する必要があります。すべてのエラーコードを確認し、アプリケーションが必要に応じて指数バックオフで再試行するようにします。推奨される再試行戦略は次のとおりです。
- 最初に失敗した後、最初に 5 秒遅延してから再試行します。
- 全部で 3 回再試行します。再試行するたびに遅延を指数関数的に増加します(10 秒、20 秒)。
再試行する際には、ネットワーク接続を確認し、デバイスが過負荷にならないようにしてください。
3 回試行した後でもエラーが表示される場合は、クライアントが一部の完全性チェックに失敗した場合と同様に処理します。エラーの理由としては、デバイスの過負荷、ネットワーク接続の問題、攻撃の試みなどが考えられますが、これらに限定されません。