App Check にアプリを登録した後、開発中のシミュレータや、継続的インテグレーション(CI)環境など、通常 App Check が有効に分類されない環境でアプリを実行する場合は、App Attest ではなく App Check デバッグ プロバイダを使用するアプリのデバッグビルドを作成できます。
シミュレータでデバッグ プロバイダを使用する
開発中など、シミュレータでインタラクティブにアプリを実行しているときにデバッグ プロバイダを使用するには、次の操作を行います。
Google Cloud コンソールの [API とサービス] セクションの [認証情報] ページで、プロジェクトの iOS API キーを検索します。
デバッグビルドで、デバッグ プロバイダを使用するように App Check を構成します。前の手順で取得した API キーを指定する必要があります。
#if targetEnvironment(simulator) GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in if let error { print("Error configuring `GIDSignIn` for App Check: \(error)") } } #else // Configure App Check for production. #endif
アプリを起動します。SDK がバックエンドにリクエストを送信しようとすると、ローカル デバッグ トークンが Xcode コンソールに記録されます。例:
<Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
Firebase コンソールの [App Check] セクションで、アプリのオーバーフロー メニューから [デバッグ トークンを管理] を選択します。前の手順でロギングされたデバッグ トークンを登録します。
トークンを登録すると、Google の OAuth 2.0 エンドポイントがプロジェクトで有効なトークンとして受け入れます。
このトークンを使用すると、有効なデバイスがなくても認証エンドポイントにアクセスできるため、トークンを非公開にしておくことが重要です。公開リポジトリには commit しないでください。登録されたトークンが不正使用された場合は、直ちに Firebase コンソールでトークンを取り消してください。
CI 環境でデバッグ プロバイダを使用する
継続的インテグレーション(CI)環境でデバッグ プロバイダを使用する手順は次のとおりです。
Firebase コンソールの [App Check] セクションで、アプリのオーバーフロー メニューから [デバッグ トークンを管理] を選択します。新しいデバッグ トークンを作成します。このトークンは次の手順で必要になります。
このトークンを使用すると、有効なデバイスがなくても認証エンドポイントにアクセスできるため、トークンを非公開にしておくことが重要です。公開リポジトリには commit しないでください。登録されたトークンが不正使用された場合は、直ちに Firebase コンソールでトークンを取り消してください。
作成したデバッグ トークンを CI システムの安全なキーストアに追加します(GitHub Actions の暗号化されたシークレットや、Travis CI の暗号化変数など)。
必要に応じて、デバッグ トークンを CI 環境内で環境変数として使用できるように CI システムを構成します。変数に
APP_CHECK_DEBUG_TOKEN_FROM_CI
などの名前を付けます。Xcode で、
FIRAAppCheckDebugToken
という名前で$(APP_CHECK_DEBUG_TOKEN)
などの環境変数をテストスキームに追加します。デバッグ トークンを環境変数として渡すように CI テスト スクリプトを構成します。例:
xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \ APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
Google Cloud コンソールの [API とサービス] セクションの [認証情報] ページで、プロジェクトの iOS API キーを検索します。
デバッグビルドで、デバッグ プロバイダを使用するように App Check を構成します。前の手順で取得した API キーを指定する必要があります。
#if targetEnvironment(simulator) GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in if let error { print("Error configuring `GIDSignIn` for App Check: \(error)") } } #else // Configure App Check for production. #endif
CI 環境でアプリを実行すると、Google の OAuth 2.0 エンドポイントは、送信されたトークンをプロジェクトで有効なトークンとして受け入れます。