Apple プラットフォームで App Check とデバッグ プロバイダを使用する

アプリを App Check に登録した後に、App Check が有効と分類しないアプリを開発中のシミュレータや継続的インテグレーション(CI)環境などで実行する場合は、実際の証明書プロバイダの代わりに App Check デバッグ プロバイダを使用するデバッグビルドをアプリに作成できます。

シミュレータでデバッグ プロバイダを使用する

開発中など、シミュレータでインタラクティブにアプリを実行しているときにデバッグ プロバイダを使用するには、次の手順を行います。

  1. デバッグビルドで Firebase バックエンド サービスを使用する前に、App Check デバッグ プロバイダのファクトリを作成して設定します。

    Swift

    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];
  2. Xcode プロジェクト(v11.0 以降)でデバッグ ロギングを有効にします。

    1. [Product] > [Scheme] > [Edit scheme] の順に開きます。
    2. 左側のメニューから [Run] を選択し、[Arguments] タブを選択します。
    3. [Arguments Passed on Launch] セクションで -FIRDebugEnabled を追加します。
  3. アプリを起動します。SDK がバックエンドにリクエストを送信しようとすると、ローカル デバッグ トークンがロギングされます。次に例を示します。

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Firebase コンソールの [App Check] セクションで、アプリのオーバーフロー メニューから [デバッグ トークンを管理] を選択します。前の手順でロギングされたデバッグ トークンを登録します。

    [デバッグ トークンを管理] メニュー項目のスクリーンショット

トークンを登録すると、Firebase バックエンド サービスはトークンを有効なものとして受け入れます。

このトークンを使用すると、有効なデバイスでなくても Firebase リソースにアクセスできます。このトークンは他に漏らさないように注意してください。公開リポジトリには commit しないでください。登録されたトークンが不正利用された場合は、直ちに Firebase コンソールでトークンを取り消してください。

CI 環境でデバッグ プロバイダを使用する

継続的インテグレーション(CI)環境でデバッグ プロバイダを使用するには、次の手順を行います。

  1. Firebase コンソールの [App Check] セクションで、アプリのオーバーフロー メニューから [デバッグ トークンを管理] を選択します。新しいデバッグ トークンを作成します。このトークンは次の手順で必要になります。

    このトークンを使用すると、有効なデバイスでなくても Firebase リソースにアクセスできます。このトークンは他に漏らさないように注意してください。公開リポジトリには commit しないでください。登録されたトークンが不正利用された場合は、直ちに Firebase コンソールでトークンを取り消してください。

    [デバッグ トークンを管理] メニュー項目のスクリーンショット

  2. 作成したデバッグ トークンを CI システムの安全なキーストアに追加します(たとえば、GitHub Actions の暗号化されたシークレットや Travis CI の暗号化された変数に追加します)。

  3. 必要に応じて、デバッグ トークンを CI 環境内で環境変数として使用できるように CI システムを構成します。変数に APP_CHECK_DEBUG_TOKEN_FROM_CI などの名前を付けます。

  4. Xcode で、FIRAAppCheckDebugToken という名前のテストスキームと $(APP_CHECK_DEBUG_TOKEN) などに環境変数を値として追加します。

  5. デバッグ トークンを環境変数として渡すように CI テスト スクリプトを構成します。例:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. デバッグビルドで Firebase バックエンド サービスを使用する前に、App Check デバッグ プロバイダのファクトリを作成して設定します。

    Swift

    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 バックエンド サービスは送信されたトークンを有効なトークンとして受け入れます。