Usa App Check con il provider di debug sulle piattaforme Apple

Se, dopo aver registrato la tua app per App Check, desideri eseguire la tua app in un ambiente che App Check normalmente non classificherebbe come valido, ad esempio un simulatore durante lo sviluppo, o da un ambiente di integrazione continua (CI), puoi crea una build di debug della tua app che usa il provider di debug di App Check invece di un vero provider di attestazione.

Usa il provider di debug in un simulatore

Per utilizzare il provider di debug durante l'esecuzione dell'app in un simulatore in modo interattivo (durante lo sviluppo, ad esempio), procedi come segue:

  1. Nella build di debug, prima di utilizzare qualsiasi servizio di back-end Firebase, crea e imposta la factory del provider di debug di App Check:

    Veloce

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Obiettivo-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Abilita la registrazione del debug nel tuo progetto Xcode (v11.0 o successivo):

    1. Apri Prodotto > Schema > Modifica schema .
    2. Seleziona Esegui dal menu a sinistra, quindi seleziona la scheda Argomenti .
    3. Nella sezione Argomenti passati all'avvio, aggiungi -FIRDebugEnabled .
  3. Avvia l'app. Un token di debug locale verrà registrato quando l'SDK tenta di inviare una richiesta al back-end. Per esempio:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Nella sezione Controllo app della console Firebase, scegli Gestisci token di debug dal menu di overflow dell'app. Quindi, registra il token di debug che hai registrato 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 eseguire il commit in un repository pubblico e, se un token registrato viene mai 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), procedi come segue:

  1. Nella sezione Controllo app della console Firebase, scegli Gestisci token di debug dal menu di overflow dell'app. Quindi, crea un nuovo token di debug. Avrai bisogno del token nel passaggio successivo.

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

    Screenshot della voce di menu Gestisci token di debug

  2. Aggiungi il token di debug appena creato all'archivio chiavi di sicurezza del tuo sistema CI (ad esempio, i segreti crittografati di GitHub Actions o le variabili crittografate di Travis CI ).

  3. Se necessario, configura il tuo sistema CI per rendere disponibile il tuo token di debug nell'ambiente CI come variabile di ambiente. Assegna un nome alla variabile come APP_CHECK_DEBUG_TOKEN_FROM_CI .

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

  5. Configura lo script di test CI per passare il token di debug come variabile di ambiente. Per 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 back-end Firebase, crea e imposta la factory del provider di debug di App Check:

    Veloce

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Obiettivo-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

Quando la tua app viene eseguita in un ambiente CI, i servizi di backend Firebase accetteranno il token inviato come valido.