Menggunakan App Check dengan penyedia debug di platform Apple

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

Menggunakan penyedia debug dalam pengembangan

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

  1. Pada build debug Anda, sebelum menggunakan layanan backend Firebase, buat dan tetapkan factory penyedia debug 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. Aktifkan logging debug dalam project Xcode Anda (v11.0 atau yang lebih baru):

    1. Buka Product > Scheme > Edit scheme.
    2. Pilih Run dari menu kiri, lalu pilih tab Arguments.
    3. Di bagian Arguments Passed on Launch, tambahkan -FIRDebugEnabled.
  3. Luncurkan aplikasi. Token debug lokal akan dicatat ke dalam log saat SDK mencoba mengirim permintaan ke backend. Contoh:

    [Firebase/AppCheck][I-FAA001001] Firebase 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, layanan backend Firebase akan menerimanya sebagai valid.

Karena token ini memungkinkan akses ke resource Firebase Anda tanpa perangkat yang valid, Anda harus menjaga kerahasiaannya. Jangan meng-commit token ke repositori publik, dan jika token yang terdaftar pernah disusupi, 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 resource Firebase 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 Action atau variabel terenkripsi Travis CI).

  3. Jika perlu, konfigurasikan sistem CI Anda untuk menyediakan token debug dalam 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. Pada build debug Anda, sebelum menggunakan layanan backend Firebase, buat dan tetapkan factory penyedia debug 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];

Saat aplikasi Anda berjalan di lingkungan CI, layanan backend Firebase akan menerima token yang dikirimkan aplikasi sebagai valid.