Aller au contenu

Guides de configuration · Unity

Test fermé Google Play pour les jeux Unity

Unity, menu par menu : compiler un Android App Bundle avec le bon keystore, le bon scripting backend et le bon niveau d’API, l’importer dans le canal fermé et garder 12 testeurs inscrits pendant 14 jours.

Build
Build App Bundle (Google Play)
Code de version
Player → Bundle Version Code
API cible
Target API Level ≥ 36

Compiler un Android App Bundle

Les noms de menus ci-dessous viennent d’Unity 6, qui utilise File → Build Profiles. Dans Unity 2022 et versions antérieures, les mêmes options se trouvent dans File → Build Settings.

  1. Passer sur Android

    Ouvrez File → Build Profiles, sélectionnez Android (installez le module via Unity Hub s’il manque) et activez ce profil avec Switch Profile.

  2. Définir le nom de package

    Dans Edit → Project Settings → Player → Android, sous Other Settings → Identification, renseignez le nom de package. Il ne peut plus changer après le premier import.

  3. Choisir IL2CPP et ARM64

    Sous Configuration, réglez Scripting Backend sur IL2CPP, puis activez ARM64 dans Target Architectures. Google Play exige du code natif 64 bits, et ARM64 n’est disponible qu’avec IL2CPP.

  4. Activer le bundle

    De retour dans le profil de build, cochez Build App Bundle (Google Play) (visible tant que Export Project est désactivé) et vérifiez que Development Build est désactivé.

  5. Compiler

    Cliquez sur Build, choisissez un nom de fichier, et Unity écrit le .aab.

Vous compilez en CI ? Les mêmes réglages sont accessibles depuis un script d’éditeur, qui rend aussi impossible l’oubli du code de version :

Assets/Editor/ReleaseBuild.cs
using UnityEditor;

public static class ReleaseBuild
{
    [MenuItem("Build/Android App Bundle")]
    public static void Build()
    {
        PlayerSettings.Android.bundleVersionCode += 1;
        EditorUserBuildSettings.buildAppBundle = true;
        BuildPipeline.BuildPlayer(new BuildPlayerOptions
        {
            scenes = new[] { "Assets/Scenes/Main.unity" },
            locationPathName = "Builds/game.aab",
            target = BuildTarget.Android,
            options = BuildOptions.None,
        });
    }
}

Keystore et signature d’application Play

Sans votre propre keystore, Unity signe avec une clé de debug, et la Play Console refuse les bundles signés en debug. Créez-en un dans l’éditeur :

  1. Ouvrir le Keystore Manager

    Allez dans Edit → Project Settings → Player → Android → Publishing Settings et ouvrez Keystore Manager.

  2. Créer le keystore

    Choisissez Keystore → Create New, enregistrez le fichier (n’importe où ou dans votre dossier dédié aux keystores), définissez un mot de passe et ajoutez une clé avec un alias.

  3. L’utiliser pour les builds

    De retour dans Publishing Settings, sélectionnez le keystore et l’alias de la clé, puis saisissez les mots de passe.

Ce keystore est votre clé d’importation. Au premier import, la Play Console configure la signature d’application Play et Google conserve la clé de signature de l’application. Sauvegardez le fichier et les deux mots de passe hors du projet ; une clé d’importation perdue impose une demande de réinitialisation dans la Play Console.

Bundle Version Code et Target API Level

Dans Player → Other Settings → Identification, Version est ce que voient les joueurs et Bundle Version Code l’entier que Google compare. Augmentez le Bundle Version Code avant chaque build importé ; la Play Console refuse les codes réutilisés.

Juste à côté se trouve Target API Level. Depuis le 31 août 2026, les nouvelles applications et mises à jour doivent cibler Android 16 (niveau d’API 36). En mode automatique, Unity utilise le SDK le plus élevé installé : vérifiez qu’il vaut au moins 36. Les anciennes versions de l’éditeur peuvent ne pas prendre en charge le niveau le plus récent ; mettez alors Unity à jour avant le test, pas pendant.

Pièges Unity

  • Build Mono. Mono ne peut pas produire d’ARM64. La Play Console signale alors que la release ne respecte pas l’exigence 64 bits. Passez à IL2CPP avec ARM64.
  • Development Build oublié. Les builds de développement sont plus lents, affichent un filigrane de développement et peuvent être marqués débogables, ce que la Play Console refuse.
  • Anciens SDK de pub et d’analytics. Des SDK tiers obsolètes apportent d’anciennes bibliothèques natives et autorisations. Mettez-les à jour avant le test : la Play Console signale les bibliothèques qui ne prennent pas en charge les pages mémoire de 16 Ko et, à partir du 1er février 2027, les mises à jour non compatibles ne pourront plus être publiées.
  • Bundle trop volumineux. Si l’import échoue à cause de la taille, activez Split Application Binary pour qu’Unity place les ressources dans des packs Play Asset Delivery plutôt que dans le module de base.
  • Minify casse les plugins. La minification en release peut supprimer des classes Java que les plugins chargent par leur nom. Ajoutez des règles de conservation ou testez la release minifiée sur un appareil avant l’import.
  • Code de version oublié. Le second import avec le même Bundle Version Code échoue. Automatisez l’incrément ou ajoutez-le à votre checklist de release.

Symboles de plantage natifs pour les builds IL2CPP

Quand un jeu Unity plante sur le téléphone d’un testeur, la trace pointe dans libil2cpp, libunity ou libmain. Sans symboles, la Play Console n’affiche que des adresses brutes, et Google Play ne symbolise pas les plantages reçus avant l’import des symboles. Configurez cela avant la première release fermée, pas après le premier plantage.

  1. Activez les symboles

    Dans File → Build Profiles → Android, réglez Debug Symbols sur Public. Les symboles publics ne contiennent que la table des symboles, ce qui suffit pour des noms de fonctions lisibles et garde un fichier léger. Debugging ajoute toutes les informations de débogage pour brancher un débogueur natif en local.

  2. Choisissez comment ils arrivent chez Google

    Choisissez .zip pour obtenir un paquet nommé par exemple MyApp-0.1-v100-IL2CPP.symbols.zip que vous importez vous-même, ou intégrez les symboles au bundle pour qu’ils partent avec le .aab. Dans un script de build, l’extrait ci-dessous fait la seconde option.

  3. Associez symboles et versions

    Les symboles appartiennent à un seul Bundle Version Code. Si vous importez le zip à la main, faites-le dans l’explorateur d’app bundles de la Play Console, onglet Téléchargements de cette version, avant que les testeurs ne l’installent.

Editor script (C#), e.g. in a CI build method
// Public symbols, embedded in the .aab so they upload with it
UserBuildSettings.DebugSymbols.level = DebugSymbolLevel.SymbolTable;
UserBuildSettings.DebugSymbols.format = DebugSymbolFormat.IncludeInBundle;

Si un plug-in natif fournit un fichier de symboles séparé, sélectionnez ce fichier dans l’Inspector et réglez Shared Library Type sur Symbol avec le bon CPU. Il doit porter le même nom que la bibliothèque et se trouver dans un dossier à part.

La Play Console en bref : du test fermé à la production

Une fois votre bundle Unity compilé et signé, la suite se passe dans la Play Console et fonctionne de la même manière pour tous les frameworks. Voici la liste de contrôle ; chaque menu et chaque écran sont décrits dans le guide Play Console complet.

  • Terminez la configuration de l’application dans le tableau de bord : règles de confidentialité, accès à l’application, annonces, classification du contenu, audience cible, sécurité des données et fiche Play Store.
  • Créez une release de test fermé sous Tester et publier → Tests → Test fermé : choisissez les pays de vos testeurs, importez le .aab et envoyez-le en examen.
  • Ajoutez les testeurs avec un Google Group dans l’onglet Testeurs et partagez le lien d’inscription. Il fonctionne dès que le canal affiche Publié.
  • Gardez au moins 12 testeurs inscrits pendant 14 jours d’affilée. Les tests internes ne comptent pas, et une personne qui part puis revient recommence ses 14 jours.
  • Publiez au moins une mise à jour pendant le test et notez ce que les testeurs ont trouvé et ce que vous avez modifié.
  • Demandez l’accès en production depuis le tableau de bord et répondez aux trois sections sur votre test, votre application et votre préparation. La décision revient à Google ; personne ne peut garantir l’approbation.

Prévoyez des départs : recrutez plus de 12 testeurs pour qu’un abandon ne retarde pas votre calendrier. Voir toutes les étapes Play Console.

Le guide Play Console complet

Canal fermé, Google Group et lien d’inscription, règle des 12 testeurs / 14 jours et demande d’accès en production, étape par étape sur une seule page.

Ouvrir les étapes Play Console

Itérer vite sans casser le test

Avec Unity : augmentez Bundle Version Code, recompilez le .aab et importez-le dans le même canal fermé. Un petit correctif publié en cours de test suffit.

Sur vos propres appareils, Build and Run installe le jeu sur le téléphone choisi dans Run Device ; une fois le chemin de sortie défini, Ctrl+B (macOS : Cmd+B) recommence. L’application patching de Unity raccourcit les builds debug sur votre appareil, mais ne livre rien aux testeurs : il leur faut toujours un nouveau .aab dans le canal fermé.

  • Les mots de passe ne sont pas enregistrés. Unity ne stocke pas les mots de passe du keystore et de la clé sur le disque : vous les saisissez à nouveau après chaque redémarrage de l’Editor. Pour des builds CI reproductibles, définissez-les dans le script de build de l’Editor, à côté de l’incrément du code de version vu dans la section build.
  • Surveillez la taille. Google Play limite le module de base à 500 Mo de téléchargement compressé. Les jeux plus lourds ont besoin de packs d’éléments via Play Asset Delivery ; modules et packs install-time peuvent atteindre ensemble 4 Go.
  • Recompilez après les mises à jour natives. L’Editor affiche un avertissement au build pour chaque .so aligné sur 4 Ko au lieu de 16 Ko. Passez à la dernière version corrective de votre Editor et des paquets natifs comme Burst, puis recompilez avant le prochain import.
  • Gardez une version d’Editor stable. Changer de version de Unity en plein test modifie les bibliothèques du moteur que lancent les testeurs. Figez la version pendant les 14 jours, sauf si un plantage impose une mise à jour.

Questions fréquentes

Puis-je tester sur un émulateur Android avant l’import ?

Unity ne prend pas en charge les émulateurs Android. Testez sur un appareil physique ; Unity Remote aide pour les entrées et le Device Simulator pour la mise en page, mais aucun ne remplace un build release sur un vrai téléphone.

Quels niveaux d’API cible Unity 6 peut-il utiliser ?

La page des exigences Android de Unity pour les versions récentes de Unity 6 indique que vous pouvez cibler les niveaux d’API 35 et 36, et Google Play exige 36 pour les nouvelles applications et les mises à jour. La version minimale prise en charge est Android 8.0 (niveau d’API 26).

IL2CPP est-il vraiment nécessaire ?

Pour Google Play, oui en pratique : seul IL2CPP compile en ARM64, et Google Play exige du code natif 64 bits. C’est aussi IL2CPP qui produit les symboles libil2cpp pour des rapports de plantage lisibles.

Pourquoi certains testeurs ne peuvent-ils pas lancer le jeu ?

Unity 6 nécessite OpenGL ES 3.1 ou Vulkan ; OpenGL ES 3.0 et les versions antérieures ne sont pas pris en charge. Laissez Vulkan activé et indiquez la configuration minimale aux testeurs avant leur inscription, pour ne pas les perdre dès le premier jour.

Sources

Les détails techniques ont été vérifiés dans la documentation officielle ci-dessous. Les menus et valeurs par défaut changent d’une version à l’autre ; en cas de doute, la page officielle fait foi.

Vous découvrez la règle des 12 testeurs ?

Le guide général explique l’exigence de Google, le déroulement jour par jour d’une campagne TestBunny et ce que nous pouvons ou ne pouvons pas garantir.

Lire le guide général

Besoin de 12 vrais testeurs pendant 14 jours ?

Ajoutez votre application et votre lien de test fermé, choisissez Starter (15 testeurs) ou Pro (25 testeurs), puis suivez l’activité de chaque testeur jour par jour dans votre panneau.

TestBunny n’est pas affilié à Google. Les testeurs gagnent des crédits, jamais d’argent. Personne ne peut garantir la décision de Google sur l’accès en production, et nous ne le faisons pas.