Utilizzare App Check con il provider di debug sulle piattaforme Apple

Se, dopo aver registrato l'app per App Check, vuoi eseguire la tua app in un ambiente che App Check normalmente non classificherebbe come valido, ad esempio un simulatore o un dispositivo durante lo sviluppo o da un ambiente di integrazione continua (CI), puoi creare una build di debug della tua app che utilizza il fornitore di debug di App Check anziché un fornitore di attestazione reale.

Utilizzare il fornitore di debug nello sviluppo

Per utilizzare il fornitore di debug durante l'esecuzione interattiva dell'app (ad esempio durante lo sviluppo):

  1. Nella build di debug, prima di utilizzare qualsiasi servizio di backend Firebase, crea e imposta la App Check factory del fornitore di debug:

    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. Abilita la registrazione di debug nel progetto Xcode (versione 11.0 o successive):

    1. Apri Product > Scheme > Edit scheme (Prodotto > Schema > Modifica schema).
    2. Seleziona Run (Esegui) dal menu a sinistra, quindi seleziona la scheda Arguments (Argomenti).
    3. Nella sezione Arguments Passed on Launch (Argomenti passati al momento dell'avvio), aggiungi -FIRDebugEnabled.
  3. Avvia l'app. Un token di debug locale verrà registrato quando l'SDK tenta di inviare una richiesta al backend. Ad esempio:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Nella console Firebase, vai a Security > App Check (Sicurezza > App Check).

  5. Registra il token di debug che hai appena registrato.

    1. Nella scheda Apps (App), trova la tua app.
    2. Nel menu overflow dell'app, seleziona Manage debug tokens (Gestisci token di debug).
    3. Segui le istruzioni sullo schermo per registrare il token di debug.

    Screenshot della voce di menu Gestisci token di debug

Dopo aver registrato il token, i servizi di backend Firebase lo accetteranno come valido.

Poiché questo token consente l'accesso alle risorse Firebase senza un dispositivo valido, è fondamentale mantenerlo privato. Non eseguirne il commit in un repository pubblico e, se un token registrato viene compromesso, revocalo immediatamente nella Firebase console.

Utilizzare il fornitore di debug in un ambiente CI

Per utilizzare il fornitore di debug in un ambiente di integrazione continua (CI):

  1. Nella console Firebase, vai a Security > App Check (Sicurezza > App Check).

  2. Crea un token di debug. Ti servirà questo token nel passaggio successivo.

    1. Nella scheda Apps (App), trova la tua app.
    2. Nel menu overflow dell'app, seleziona Manage debug tokens (Gestisci token di debug).
    3. Segui le istruzioni sullo schermo per creare un nuovo token di debug.

    Poiché questo token consente l'accesso alle risorse Firebase senza un dispositivo valido, è fondamentale mantenerlo privato. Non eseguirne il commit in un repository pubblico e, se un token registrato viene compromesso, revocalo immediatamente nella Firebase console.

    Screenshot della voce di menu Gestisci token di debug

  3. Aggiungi il token di debug appena creato all'archivio di chiavi sicure del sistema CI (ad esempio, i secret criptati di GitHub Actions o le variabili criptate di Travis CI).

  4. Se necessario, configura il sistema CI in modo che il token di debug sia disponibile nell'ambiente CI come variabile di ambiente. Assegna alla variabile un nome simile a APP_CHECK_DEBUG_TOKEN_FROM_CI.

  5. In Xcode, aggiungi una variabile di ambiente allo schema di test con il nome FIRAAppCheckDebugToken e un valore simile a $(APP_CHECK_DEBUG_TOKEN).

  6. Configura lo script per il test CI in modo da passare il token di debug come variabile di ambiente. Ad esempio:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  7. Nella build di debug, prima di utilizzare qualsiasi servizio di backend Firebase, crea e imposta la App Check factory del fornitore di debug:

    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];

Quando l'app viene eseguita in un ambiente CI, i servizi di backend Firebase accettano il token inviato come valido.