Utilisez App Check avec le fournisseur de débogage sur les plates-formes Apple

Si, après avoir enregistré votre application pour App Check, vous souhaitez exécuter votre application dans un environnement qu'App Check ne classerait normalement pas comme valide, tel qu'un simulateur en cours de développement ou à partir d'un environnement d'intégration continue (CI), vous pouvez créez une version de débogage de votre application qui utilise le fournisseur de débogage App Check au lieu d'un véritable fournisseur d'attestation.

Utiliser le fournisseur de débogage dans un simulateur

Pour utiliser le fournisseur de débogage lors de l'exécution interactive de votre application dans un simulateur (pendant le développement, par exemple), procédez comme suit :

  1. Dans votre version de débogage, avant d'utiliser des services backend Firebase, créez et définissez la fabrique du fournisseur de débogage App Check :

    Rapide

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

    Objectif c

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Activez la journalisation du débogage dans votre projet Xcode (v11.0 ou plus récent) :

    1. Ouvrez Produit > Schéma > Modifier le schéma .
    2. Sélectionnez Exécuter dans le menu de gauche, puis sélectionnez l'onglet Arguments .
    3. Dans la section Arguments transmis au lancement , ajoutez -FIRDebugEnabled .
  3. Lancez l'application. Un jeton de débogage local sera enregistré lorsque le SDK tentera d'envoyer une requête au backend. Par exemple:

    [Firebase/AppCheck][I-FAA001001] Firebase App Check Debug Token:
    123a4567-b89c-12d3-e456-789012345678
  4. Dans la section App Check de la console Firebase, choisissez Gérer les jetons de débogage dans le menu à débordement de votre application. Ensuite, enregistrez le jeton de débogage que vous avez connecté à l'étape précédente.

    Capture d'écran de l'élément de menu Gérer les jetons de débogage

Après avoir enregistré le jeton, les services backend Firebase l'accepteront comme valide.

Étant donné que ce jeton permet d'accéder à vos ressources Firebase sans appareil valide, il est essentiel que vous le gardiez privé. Ne le validez pas dans un référentiel public et si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.

Utiliser le fournisseur de débogage dans un environnement CI

Pour utiliser le fournisseur de débogage dans un environnement d'intégration continue (CI), procédez comme suit :

  1. Dans la section App Check de la console Firebase, choisissez Gérer les jetons de débogage dans le menu à débordement de votre application. Ensuite, créez un nouveau jeton de débogage. Vous aurez besoin du jeton à l'étape suivante.

    Étant donné que ce jeton permet d'accéder à vos ressources Firebase sans appareil valide, il est essentiel que vous le gardiez privé. Ne le validez pas dans un référentiel public et si un jeton enregistré est compromis, révoquez-le immédiatement dans la console Firebase.

    Capture d'écran de l'élément de menu Gérer les jetons de débogage

  2. Ajoutez le jeton de débogage que vous venez de créer au magasin de clés sécurisé de votre système CI (par exemple, les secrets chiffrés de GitHub Actions ou les variables chiffrées de Travis CI).

  3. Si nécessaire, configurez votre système CI pour rendre votre jeton de débogage disponible dans l'environnement CI en tant que variable d'environnement. Nommez la variable comme APP_CHECK_DEBUG_TOKEN_FROM_CI .

  4. Dans Xcode, ajoutez une variable d'environnement à votre schéma de test avec le nom FIRAAppCheckDebugToken et quelque chose comme $(APP_CHECK_DEBUG_TOKEN) comme valeur.

  5. Configurez votre script de test CI pour transmettre le jeton de débogage en tant que variable d'environnement. Par exemple:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Dans votre version de débogage, avant d'utiliser des services backend Firebase, créez et définissez la fabrique du fournisseur de débogage App Check :

    Rapide

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

    Objectif c

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

Lorsque votre application s'exécute dans un environnement CI, les services backend Firebase accepteront le jeton qu'ils envoient comme valide.