App Checkにアプリを登録した後、開発中のシミュレーターなど、App Checkが通常は有効と分類されない環境で、または継続的インテグレーション(CI)環境からアプリを実行する場合は、次のことができます。実際のアテステーションプロバイダーの代わりにAppCheckデバッグプロバイダーを使用するアプリのデバッグビルドを作成します。
シミュレーターでデバッグプロバイダーを使用する
シミュレーターでアプリをインタラクティブに実行している間(たとえば、開発中)にデバッグプロバイダーを使用するには、次の手順を実行します。
デバッグビルドで、Firebaseバックエンドサービスを使用する前に、AppCheckデバッグプロバイダーファクトリを作成して設定します。
迅速
let providerFactory = AppCheckDebugProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
FIRAppCheckDebugProviderFactory *providerFactory = [[FIRAppCheckDebugProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; // Use Firebase library to configure APIs [FIRApp configure];
Xcodeプロジェクト(v11.0以降)でデバッグログを有効にします。
- [製品]>[スキーム]>[スキームの編集]を開きます。
- 左側のメニューから[実行]を選択し、[引数]タブを選択します。
- 「起動時に渡される引数」セクションに、
-FIRDebugEnabled
を追加します。
アプリを起動します。 SDKがバックエンドにリクエストを送信しようとすると、ローカルデバッグトークンがログに記録されます。例えば:
[Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token: 123a4567-b89c-12d3-e456-789012345678
Firebaseコンソールの[アプリチェック]セクションで、アプリのオーバーフローメニューから[デバッグトークンの管理]を選択します。次に、前の手順でログインしたデバッグトークンを登録します。
トークンを登録すると、Firebaseバックエンドサービスはトークンを有効なものとして受け入れます。
このトークンを使用すると、有効なデバイスがなくてもFirebaseリソースにアクセスできるため、非公開にしておくことが重要です。公開リポジトリにコミットしないでください。登録されたトークンが危険にさらされた場合は、Firebaseコンソールですぐに取り消してください。
CI環境でデバッグプロバイダーを使用する
継続的インテグレーション(CI)環境でデバッグプロバイダーを使用するには、次の手順を実行します。
Firebaseコンソールの[アプリチェック]セクションで、アプリのオーバーフローメニューから[デバッグトークンの管理]を選択します。次に、新しいデバッグトークンを作成します。次のステップでトークンが必要になります。
このトークンを使用すると、有効なデバイスがなくてもFirebaseリソースにアクセスできるため、非公開にしておくことが重要です。公開リポジトリにコミットしないでください。登録されたトークンが危険にさらされた場合は、Firebaseコンソールですぐに取り消してください。
作成したデバッグトークンをCIシステムの安全なキーストアに追加します(たとえば、GitHubActionsの暗号化されたシークレットまたはTravisCIの暗号化された変数)。
必要に応じて、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)
デバッグビルドで、Firebaseバックエンドサービスを使用する前に、AppCheckデバッグプロバイダーファクトリを作成して設定します。
迅速
let providerFactory = AppCheckDebugProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
FIRAppCheckDebugProviderFactory *providerFactory = [[FIRAppCheckDebugProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; // Use Firebase library to configure APIs [FIRApp configure];
アプリがCI環境で実行されている場合、Firebaseバックエンドサービスは送信したトークンを有効なものとして受け入れます。