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

Une fois App Check appliqué à un service de backend, les fonctionnalités de votre application qui dépendent de ce service de backend ne s'exécutent pas dans un simulateur ni dans un environnement d'intégration continue (CI), car ces environnements ne sont pas considérés comme des appareils valides. Pour exécuter votre application dans ces environnements lors du développement et des tests, vous devez créer une version de débogage de votre application qui utilise le App Check fournisseur de débogage au lieu d'un fournisseur d'attestation de production.

Utiliser le fournisseur de débogage dans un simulateur

Voici comment utiliser le fournisseur de débogage lorsque vous exécutez votre application de manière interactive dans un simulateur (par exemple, lors du développement local) :

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

    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. Obtenez votre jeton de débogage :

    1. Lancez votre application dans le simulateur ou sur votre appareil de test.

    2. Ouvrez la console Xcode et recherchez le jeton de débogage App Check. Exemple :

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Copiez le jeton (par exemple, 123a4567-b89c-12d3-e456-789012345678).

  3. Enregistrez votre jeton de débogage auprès de App Check :

    1. Dans la console Firebase, accédez à Sécurité > App Check > onglet Applications.

    2. Recherchez votre application, cliquez sur le menu à trois points (), puis sélectionnez Gérer les jetons de débogage.

    3. Suivez les instructions à l'écran pour enregistrer votre jeton de débogage.

    Capture d'écran de l'élément de menu &quot;Gérer les jetons de débogage&quot; dans la console Firebase

Une fois le jeton enregistré auprès de App Check, vos services backend l' accepteront comme valide.

Ce jeton permet d'accéder à vos services backend sans appareil valide. Il est donc essentiel de le garder privé. Ne le validez pas dans un dépôt public et ne l'incluez pas dans les versions de production de votre application. Si un jeton enregistré est compromis, supprimez-le immédiatement à l'aide de l'option Gérer les jetons de débogage dans la Firebase console.

Utiliser le fournisseur de débogage dans un environnement CI

Voici comment utiliser le fournisseur de débogage pour les tests unitaires dans un environnement d'intégration continue (CI) :

  1. Dans la Firebase console, créez un jeton de débogage :

    1. Dans la console Firebase, accédez à Sécurité > App Check > onglet Applications.

    2. Recherchez votre application, cliquez sur le menu à trois points (), puis sélectionnez Gérer les jetons de débogage.

    3. Suivez les instructions à l'écran pour créer un jeton de débogage.

    Ce jeton permet d'accéder à vos services backend sans appareil valide. Il est donc essentiel de le garder privé. Ne le validez pas dans un dépôt public et ne l'incluez pas dans les versions de production de votre application. Si un jeton enregistré est compromis, supprimez-le immédiatement à l'aide de l'option Gérer les jetons de débogage dans la Firebase console.

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

  2. Ajoutez le jeton de débogage que vous venez de créer au keystore 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 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 AppCheckDebugToken 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 YOUR_TEST_SCHEME -workspace YOUR_PROJECT.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 App Check fabrique de fournisseurs de débogage :

    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, vos services backend acceptent le jeton qu'elle envoie comme valide.