Test fermé Google Play pour les apps FlutterFlow
FlutterFlow (sa documentation appelle désormais l'éditeur visuel FlutterFlow Studio) peut déployer sur Google Play sans quitter l'éditeur. Le chemin qu'il documente : un premier envoi sur le canal de test interne, puis une promotion en production (doc FlutterFlow).
Ce chemin saute l'étape que Google impose aux nouveaux comptes personnels. Si votre compte Play Console est personnel et a été créé après le 13 novembre 2023, la production reste désactivée tant que vous n'avez pas mené un test fermé avec au moins 12 testeurs inscrits pendant 14 jours sans interruption et que Google n'a pas approuvé votre demande d'accès production (Aide Play Console). Cette page montre comment insérer un test fermé dans le parcours de FlutterFlow. Pour la règle elle-même, voyez le guide du test fermé.
Les réglages irréversibles
Vérifiez-les avant le premier déploiement :
- Nom du package. FlutterFlow prévient qu'il ne peut plus être changé une fois l'app déployée. Quand vous créez l'app dans la Play Console, Google associe aussi ce nom de package à votre compte pour la vérification des développeurs Android (Android Developers).
- Icône de lancement. Les prérequis de FlutterFlow précisent qu'elle ne peut être ni transparente ni contenir de canal alpha.
- Tâches de configuration de la Play Console. FlutterFlow vous demande de terminer toutes les tâches de la rubrique Set up your app de la Play Console avant de déployer. Les sauter est la cause la plus fréquente de l'erreur de brouillon décrite plus bas.
Relier FlutterFlow à la Play Console
FlutterFlow déploie via un compte de service Google (doc FlutterFlow) :
- Dans la console Google Cloud, activez l'API Google Play Developer et créez un compte de service avec une clé JSON.
- Dans la Play Console, allez dans Utilisateurs et autorisations, invitez l'adresse e-mail du compte de service et accordez-lui Edit and delete draft apps, Release to production…, Release apps to testing tracks et Manage testing tracks and edit tester lists.
- Dans FlutterFlow, ouvrez Settings & Integrations > App Settings > Mobile Deployment et importez le JSON sous Service Account Credentials.
Première version : mettez l'AAB sur la piste de test fermé
Le guide de FlutterFlow indique que, pour le premier déploiement, vous téléchargez l'AAB et l'importez vous-même ; ensuite, FlutterFlow peut gérer les versions (doc FlutterFlow).
- Dans FlutterFlow, réglez le Google Play Track et cliquez sur Deploy to Play Store.
- Patientez, cliquez sur Check Build Status, puis téléchargez l'AAB.
- Dans la Play Console, allez dans Tester et publier > Tests > Tests fermés > Gérer le canal et créez une version avec ce fichier. La page de dépannage de FlutterFlow confirme que le premier envoi manuel peut aller en test interne, fermé, ouvert ou en production (doc FlutterFlow). Choisissez le test fermé.
- Dans l'onglet Testeurs, ajoutez vos testeurs (liste d'adresses e-mail ou groupe Google), choisissez les pays, enregistrez et envoyez les modifications pour examen.
Si le déploiement de l'étape 1 échoue avec « Package not found » (package introuvable), c'est normal pour un premier déploiement. FlutterFlow le liste comme un symptôme du premier envoi ; l'AAB reste téléchargeable.
Pourquoi ne pas utiliser le canal interne par défaut de FlutterFlow pour les testeurs ? Le test interne ne compte pas pour l'exigence de Google. Et Google indique qu'un utilisateur inscrit à votre test interne ne peut plus recevoir votre test fermé (Aide Play Console). Gardez le test interne pour vos propres appareils. Le guide interne, fermé ou ouvert explique les différents canaux.
Les mises à jour pendant les 14 jours
Vous corrigerez des choses pendant le test. Google le recommande, et le formulaire d'accès production demande ce que vous avez modifié (Aide Play Console).
- FlutterFlow incrémente automatiquement le Build Number (le
versionCodeAndroid) à chaque déploiement : inutile de l'augmenter à la main. - Le guide de FlutterFlow documente les réglages des canaux Internal et Production. Si le menu des canaux de votre projet ne propose pas votre piste de test fermé, téléchargez l'AAB de chaque build et importez-le sur la piste de test fermé dans la Play Console. Ou déployez depuis GitHub avec votre propre pipeline.
- N'envoyez pas un correctif en test interne en espérant que vos testeurs du test fermé le reçoivent. Ils ne reçoivent que ce qui est sur la piste de test fermé (ou un code de version plus élevé en production, que vous n'avez pas encore).
Le keystore, c'est à vous de le sauvegarder
FlutterFlow génère automatiquement un keystore d'importation et signe chaque version avec. Son guide indique que vous pouvez télécharger le keystore avec le bouton orange en forme de clé (doc FlutterFlow). Faites-le avant la première version. Si vous avez déjà publié cette app avec votre propre keystore, activez Upload Keystore dans Advanced Settings et indiquez plutôt l'alias.
Avec la Signature d'application Play, Google peut réinitialiser une clé d'importation perdue (Aide Play Console). Mais la vérification des développeurs peut exiger la preuve que vous possédez la clé de signature d'un package, et la FAQ de Google précise qu'une clé de signature perdue vous empêche d'enregistrer vos packages (FAQ Android Developers). Un keystore téléchargé et sauvegardé vous coûte un clic.
Beaucoup d'apps FlutterFlow utilisent Firebase Auth. Ajoutez dans Firebase le SHA-1 ou le SHA-256 de la clé de signature d'application détenue par Google (Play Console > Protégé avec Play > Distribution sur le Play Store > Accéder à la signature d'application Play). Google indique que les fournisseurs d'API ont besoin de cette empreinte, pas seulement de votre clé d'importation. Sautez cette étape et Google Sign-In peut échouer pour chaque testeur.
API cible 36 : comment vérifier un build FlutterFlow
Depuis le 31 août 2026, les nouvelles apps et les mises à jour doivent cibler le niveau d'API 36 ou une version ultérieure (Aide Play Console). La documentation de FlutterFlow ne publie pas le SDK cible des projets générés : vérifiez le code.
- Exportez-le (téléchargez le code, poussez-le sur GitHub, ou lancez
flutterflow export-code --project <id> --dest <folder>avec la CLI FlutterFlow (doc FlutterFlow)). - Ouvrez
android/app/build.gradle.kts(oubuild.gradle) et chercheztargetSdk. - S'il indique
flutter.targetSdkVersion, la valeur suit la version de Flutter utilisée pour compiler. Sur la branche stable de Flutter aujourd'hui (3.47), c'est 36 (code source Flutter).
Sur les offres Enterprise, un projet figé sur une version stable de FlutterFlow ne reçoit pas de mises à jour, y compris celles de Flutter, et chaque version stable est maintenue six mois (doc FlutterFlow). Si votre projet est figé, vérifiez le SDK cible avant de lancer les 14 jours. La page Flutter détaille le côté Gradle.
Erreurs de déploiement FlutterFlow et solutions
| Erreur (telle que FlutterFlow la documente) | Solution |
|---|---|
| « Only releases with status draft may be created on draft app. » (seules des versions à l'état de brouillon peuvent être créées sur une app à l'état de brouillon) | Complétez dans la Play Console le contenu de l'application, la fiche Play Store, les prix et la distribution, le public cible et la classification du contenu. Ou activez Submit as draft et déployez à la main (doc FlutterFlow). |
| « Changes cannot be sent for review automatically » (les modifications ne peuvent pas être envoyées automatiquement pour examen) | Activez l'option des modifications non envoyées pour examen, réessayez, puis envoyez-les pour examen depuis la page Vue d'ensemble de la publication de la Play Console (Aide Play Console). |
| « Package not found: … » (package introuvable) | Premier déploiement : importez l'AAB à la main. Ou vous avez changé le nom du package sans régénérer les fichiers de configuration Firebase. |
| « You must declare the use of advertising ID in Play Console. » (vous devez déclarer l'utilisation de l'identifiant publicitaire dans la Play Console) | Remplissez la déclaration sur l'identifiant publicitaire dans Contenu de l'application (doc FlutterFlow). |
| « …signed in debug mode. You need to sign your APK or Android App Bundle in release mode » (signé en mode debug ; vous devez signer votre APK ou votre Android App Bundle en mode release) | Seulement si vous compilez vous-même le code exporté : faites pointer buildTypes vers la configuration de signature release (doc FlutterFlow). |
Avant que les testeurs ouvrent l'app
- Testez d'abord sur un vrai appareil. FlutterFlow en fait un prérequis.
- Si l'app a une connexion, donnez aux testeurs des identifiants qui fonctionnent et remplissez la section Accès aux applications de la Play Console pour les examinateurs de Google (Aide Play Console).
- Gardez courte la liste des fonctionnalités à faire tester. Vous résumerez les retours dans le formulaire de demande d'accès production.
Calendrier
- Compte de service et premier envoi manuel : une soirée, passée surtout dans les écrans de Google Cloud et de la Play Console.
- Premier examen de Google : jusqu'à sept jours, voire plus dans des cas exceptionnels, pour certains nouveaux comptes (Aide Play Console), puis plusieurs heures avant que le lien d'inscription (opt-in) fonctionne.
- 14 jours de test sans interruption, puis un examen de l'accès production qui prend généralement une semaine ou moins (Aide Play Console).
Comptez trois à quatre semaines entre le premier envoi en test fermé et votre premier déploiement en production depuis FlutterFlow.
Questions fréquentes
FlutterFlow peut-il publier directement en production sur un nouveau compte personnel ?
Pas au début. Sur les comptes personnels créés après le 13 novembre 2023, Google laisse le canal Production désactivé tant que vous n'avez pas mené un test fermé avec 12 testeurs pendant 14 jours sans interruption et que votre demande d'accès production n'est pas approuvée.
La version de test interne de FlutterFlow compte-t-elle pour les 12 testeurs ?
Non. Seul un test fermé compte. Google indique aussi qu'un utilisateur inscrit à votre test interne ne peut pas recevoir votre test fermé : gardez vos testeurs du test fermé hors du canal interne.
Comment récupérer l'AAB depuis FlutterFlow pour le premier envoi ?
Le guide de FlutterFlow indique de régler le canal Google Play, de cliquer sur Deploy to Play Store, puis sur Check Build Status, et de télécharger l'AAB. Importez ce fichier sur votre piste de test fermé dans la Play Console.
Où est mon keystore FlutterFlow ?
FlutterFlow génère un keystore d'importation et signe votre app avec. Son guide de déploiement indique que vous pouvez le télécharger avec le bouton orange en forme de clé. Faites-le avant votre première version et gardez-en une sauvegarde.
Que veut dire « Only releases with status draft may be created on draft app » ?
Votre app est encore à l'état de brouillon dans la Play Console, en général parce que des sections de configuration obligatoires sont incomplètes. Complétez-les, ou activez Submit as draft dans FlutterFlow et déployez la version à la main.
Sources
- support.google.com/googleplay/android-developer/answer/14151465
- support.google.com/googleplay/android-developer/answer/9845334
- support.google.com/googleplay/android-developer/answer/11926878
- support.google.com/googleplay/android-developer/answer/9842756
- support.google.com/googleplay/android-developer/answer/9859654
- support.google.com/googleplay/android-developer/answer/9859751
- support.google.com/googleplay/android-developer/answer/9859455
- developer.android.com/developer-verification/guides/google-play-console
- developer.android.com/developer-verification/guides/faq
- docs.flutterflow.io/deployment/google-playstore-deployment
- docs.flutterflow.io/troubleshooting/google-play-store-deployment/google-play-failed-to-upload-artefacts-package
- docs.flutterflow.io/troubleshooting/google-play-store-deployment/google-play-draft-release-error
- docs.flutterflow.io/troubleshooting/google-play-store-deployment/declare-advertising-id-android-13-play-console
- docs.flutterflow.io/troubleshooting/google-play-store-deployment/google-play-store-debug-signing-error
- docs.flutterflow.io/resources/projects/settings/flutterflow-version-management
- docs.flutterflow.io/flutterflow-cli/exporting
- github.com/flutter/flutter/blob/stable/packages/flutter_tools/gradle/src/main/kotlin/FlutterExtension.kt