Menggunakan App Check dengan penyedia debug

Jika, setelah mendaftarkan aplikasi untuk App Check, Anda ingin menjalankan aplikasi di lingkungan yang biasanya tidak diklasifikasikan oleh App Check sebagai valid, seperti simulator selama pengembangan atau dari lingkungan continuous integration (CI), Anda dapat membuat build debug aplikasi yang menggunakan penyedia debug App Check, bukan App Attest.

Menggunakan penyedia debug dalam simulator

Untuk menggunakan penyedia debug saat menjalankan aplikasi Anda di simulator secara interaktif (misalnya, selama pengembangan), lakukan hal berikut:

  1. Cari kunci API iOS untuk project Anda di halaman Credentials di bagian APIs & Services di Google Cloud Console.

  2. Dalam build debug, konfigurasikan App Check untuk menggunakan penyedia debug. Anda harus menentukan kunci API yang didapatkan di langkah sebelumnya.

    #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
    
  3. Luncurkan aplikasi. Token debug lokal akan dicatat ke konsol Xcode saat SDK mencoba mengirim permintaan ke backend. Contoh:

    <Warning> [AppCheckCore][I-GAC004001] App Check debug token:
    '123a4567-b89c-12d3-e456-789012345678'.
    
  4. Di bagian App Check di Firebase console, pilih Manage debug tokens dari menu tambahan aplikasi. Lalu, daftarkan token debug yang Anda catat dalam log di langkah sebelumnya.

    Screenshot item menu Manage Debug Tokens

Setelah Anda mendaftarkan token, endpoint OAuth 2.0 Google akan menerimanya sebagai valid untuk project Anda.

Karena token ini memungkinkan akses ke endpoint autentikasi Anda tanpa perangkat yang valid, Anda harus menjaga kerahasiaannya. Jangan meng-commit token ke repositori publik, dan jika token yang terdaftar pernah terungkap kerahasiaannya, segera cabut token tersebut di Firebase console.

Menggunakan penyedia debug di lingkungan CI

Untuk menggunakan penyedia debug di lingkungan continuous integration (CI), lakukan hal berikut:

  1. Di bagian App Check di Firebase console, pilih Manage debug tokens dari menu tambahan aplikasi. Kemudian, buat token debug baru. Anda memerlukan token tersebut di langkah berikutnya.

    Karena token ini memungkinkan akses ke endpoint autentikasi Anda tanpa perangkat yang valid, Anda harus menjaga kerahasiaannya. Jangan meng-commit token ke repositori publik, dan jika token yang terdaftar pernah terungkap kerahasiaannya, segera cabut token tersebut di Firebase console.

    Screenshot item menu Manage Debug Tokens

  2. Tambahkan token debug yang baru saja dibuat ke penyimpanan kunci yang aman di sistem CI Anda (misalnya, rahasia terenkripsi GitHub Actions atau variabel terenkripsi Travis CI).

  3. Jika perlu, konfigurasikan sistem CI Anda agar token debug tersedia di lingkungan CI sebagai variabel lingkungan. Beri nama variabel seperti APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. Di Xcode, tambahkan variabel lingkungan ke skema pengujian Anda dengan nama FIRAAppCheckDebugToken dan $(APP_CHECK_DEBUG_TOKEN) sebagai nilainya.

  5. Konfigurasikan skrip pengujian CI Anda untuk meneruskan token debug sebagai variabel lingkungan. Contoh:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Cari kunci API iOS untuk project Anda di halaman Credentials di bagian APIs & Services di Google Cloud Console.

  7. Dalam build debug, konfigurasikan App Check untuk menggunakan penyedia debug. Anda harus menentukan kunci API yang didapatkan di langkah sebelumnya.

    #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
    

Saat aplikasi Anda berjalan di lingkungan CI, endpoint OAuth 2.0 Google akan menerima token yang dikirimkannya sebagai valid untuk project Anda.