Utilizzare App Check con il provider di debug sulle piattaforme Apple

Se, dopo aver registrato la tua app per App Check, vuoi eseguirla 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 provider di debug App Check anziché un vero provider di attestazione.

Utilizzare il provider di debug in fase di sviluppo

Per utilizzare il provider 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 il factory del provider di 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. Attiva il logging di debug nel tuo progetto Xcode (v11.0 o versioni 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. Quando l'SDK tenta di inviare una richiesta al backend, viene registrato un token di debug locale. Ad esempio:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Nella sezione App Check della console Firebase, scegli Gestisci token di debug dal menu overflow della tua app. Poi, registra il token di debug con cui hai eseguito l'accesso nel passaggio precedente.

    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 console Firebase.

Utilizzare il provider di debug in un ambiente CI

Per utilizzare il provider di debug in un ambiente di integrazione continua (CI), segui questi passaggi:

  1. Nella sezione App Check della console Firebase, scegli Gestisci token di debug dal menu overflow della tua app. Poi, crea un nuovo token di debug. Ti servirà nel passaggio successivo.

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

    Screenshot della voce di menu Gestisci token di debug

  2. Aggiungi il token di debug che hai appena creato all'archivio chiavi sicuro del tuo sistema di integrazione continua (ad esempio, i segreti criptati di GitHub Actions o le variabili criptate di Travis CI).

  3. 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 come APP_CHECK_DEBUG_TOKEN_FROM_CI.

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

  5. Configura lo script di test CI in modo che trasmetta 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)
  6. Nella build di debug, prima di utilizzare qualsiasi servizio di backend Firebase, crea e imposta il factory del provider di 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];

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