Utiliser 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 l'exécuter dans un environnement que App Check ne classerait normalement pas comme valide (par exemple, un simulateur ou un appareil pendant le développement, ou à partir d'un environnement d'intégration continue (CI)), vous pouvez créer 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 en phase de développement

Pour utiliser le fournisseur de débogage lors de l'exécution interactive de votre application (pendant le développement, par exemple) :

  1. Dans votre build de débogage, avant d'utiliser des services de backend Firebase, créez et définissez la fabrique de fournisseurs de débogage 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. Activez la journalisation des données de débogage dans votre projet Xcode (version 11.0 ou ultérieure) :

    1. Ouvrez Product > Scheme > Edit scheme (Produit > Schéma > Modifier le schéma).
    2. Sélectionnez Run (Exécuter) dans le menu de gauche, puis sélectionnez l'onglet Arguments.
    3. Dans la section Arguments Passed on Launch (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. 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, sélectionnez Gérer les jetons de débogage dans le menu à trois points de votre application. Ensuite, enregistrez le jeton de débogage que vous avez consigné à l'étape précédente.

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

Une fois le jeton enregistré, les services de backend Firebase l'acceptent 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 l'enregistrez pas dans un dépôt public. 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, sélectionnez Gérer les jetons de débogage dans le menu à trois points de votre application. Créez ensuite un jeton de débogage. Vous en aurez besoin à 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 secret. Ne l'enregistrez pas dans un dépôt public. 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 keystore sécurisé de votre système d'intégration continue (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 que votre jeton de débogage soit disponible dans l'environnement CI en tant que variable d'environnement. Nommez la variable, par exemple APP_CHECK_DEBUG_TOKEN_FROM_CI.

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

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

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Dans votre build de débogage, avant d'utiliser des services de backend Firebase, créez et définissez la fabrique de fournisseurs de débogage 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];

Lorsque votre application s'exécute dans un environnement d'intégration continue, les services de backend Firebase acceptent le jeton qu'elle envoie comme valide.