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 exécuter votre application dans un environnement que App Check ne considérerait normalement pas comme valide, tel qu'un simulateur ou un appareil pendant le développement, ou à partir d'une 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 développement

Pour utiliser le fournisseur de débogueur tout en exécutant votre application de manière interactive (pendant le développement, par exemple) :

  1. Dans votre version de débogage, avant d'utiliser les services de backend Firebase, créez et définissez la fabrique du fournisseur 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 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 Exécuter dans le menu de gauche, puis l'onglet Arguments.
    3. Dans la section Arguments transmis au lancement, ajoutez -FIRDebugEnabled.
  3. Lancez l'application. Un jeton de débogage local sera consigné 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 dans le menu à développer. Enregistrez ensuite le jeton de débogage que vous avez enregistré à l'étape précédente.

    Capture d'écran de l'élément de menu "Manage Debug Tokens" (Gérer les jetons de débogage)

Une fois le jeton enregistré, les services backend Firebase l'accepteront comme valide.

Comme ce jeton permet d'accéder à vos ressources Firebase un appareil valide, il est essentiel de préserver sa confidentialité. Ne l'ajoutez pas à 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ébogueur dans un environnement CI

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

  1. Dans la section App Check de la console Firebase, sélectionnez Gérer les jetons de débogage dans le menu à développer de votre application. Créez ensuite un jeton de débogage. Vous en aurez besoin à l'étape suivante.

    Comme ce jeton permet d'accéder à vos ressources Firebase un appareil valide, il est essentiel de préserver sa confidentialité. Ne procédez pas au commit 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 "Manage Debug Tokens" (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 de 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 APP_CHECK_DEBUG_TOKEN_FROM_CI, par exemple.

  4. Dans Xcode, ajoutez à votre schéma de test une variable d'environnement nommée FIRAAppCheckDebugToken et un élément semblable à $(APP_CHECK_DEBUG_TOKEN) en tant que la valeur.

  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 version de débogage, avant d'utiliser les services de backend Firebase, créez et définissez la fabrique du fournisseur 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 CI, les services de backend Firebase acceptent le jeton qu'il envoie comme valide.