Package Name — définition, notation de domaine inversé et exigences

Auteur : IT Sectr Publié le : 2026-04-17 Temps de lecture : 8 min

Package Name est un identifiant unique pour les applications Android basé sur la notation de domaine inversé (reverse domain notation). Il est utilisé par le système pour distinguer les applications sur l’appareil de l’utilisateur, par Google Play pour identifier le produit et par les services Firebase pour lier toutes les configurations du projet. Selon la Documentation Développeur Android, le Package Name reste inchangé pendant tout le cycle de vie de l’application après sa publication.

Points Clés

  • Package Name — identifiant global d’application Android au format de domaine inversé
  • Format utilise le domaine de l’entreprise en ordre inversé : com.example.app
  • Unicité vérifiée par Google Play lors de la publication — les doublons sont interdits
  • Modifier le Package Name après publication est impossible sans créer une nouvelle app
  • Application ID dans build.gradle correspond au Package Name et est configuré séparément

Qu’est-ce que Package Name dans Android

Package Name est une chaîne unique qu’Android utilise pour identifier une application au niveau du système d’exploitation. Elle correspond au champ package dans le fichier AndroidManifest.xml et au champ applicationId dans le fichier build.gradle du module de l’application. Sans un Package Name unique, il est impossible d’installer une application sur l’appareil de l’utilisateur.

Objectif du Package Name

Sur l’appareil, le Package Name sert de clé pour la gestion des applications : le système stocke les données, les paramètres et le cache de chaque application dans le répertoire /data/data/[packageName]. Deux applications avec le même identifiant ne peuvent pas coexister — en tentant d’installer un doublon, le système invite à supprimer l’application existante.

Package Name et Application ID

Dans Android Gradle Plugin version 0.11+, une séparation a été introduite entre Package Name (dans le manifeste) et Application ID (dans build.gradle). L’Application ID est l’identifiant réel de l’application pour le système et Google Play. Le Package Name dans le manifeste est utilisé pour la résolution des ressources et la génération de la classe R. Il est recommandé de les garder identiques pour simplifier.

groovy
// build.gradle (Module: app)
android {
    defaultConfig {
        applicationId "com.example.myapplication"
        minSdkVersion 24
        targetSdkVersion 34
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
        }
    }
}

Le champ applicationIdSuffix permet d’ajouter un suffixe à l’Application ID pour différentes configurations de build. Une version debug peut avoir l’identifiant com.example.app.debug, permettant de l’installer aux côtés de la version de production pour des tests parallèles.

Règles de nommage du Package Name

Google Play établit des règles strictes pour le Package Name à respecter lors de la publication. L’identifiant doit être unique dans tout le store, respecter les exigences syntaxiques et ne pas violer les politiques de marques déposées.

Exigences syntaxiques

Le Package Name ne peut contenir que des lettres latines (A-Z, a-z), des chiffres (0-9), un point (.) et un tiret bas (_). La longueur maximale est de 150 caractères. Chaque segment entre les points doit commencer par une lettre. Les traits d’union, espaces et caractères spéciaux sont interdits par les règles de Google Play.

ExigenceValeurExemple
Caractères autorisésLettres latines, chiffres, point, tiret bascom.example.my_app
Longueur maximale150 caractèrescom.example.verylongappname
Début de segmentLettre uniquementcom — pas 3com
InterditTraits d’union, espaces, cyrilliquecom.example-app — erreur
UnicitéGlobale dans Google PlayVérifié à la création

Exigences d’unicité

L’unicité du Package Name est une exigence absolue du Google Play Store. Si une autre application utilise déjà l’identifiant sélectionné, la publication sera rejetée. Google ne libère pas les identifiants des applications supprimées, donc choisir le premier Package Name est une décision critique pour chaque développeur.

Notation de domaine inversé et conventions

La notation de domaine inversé est un standard de nommage où le nom de domaine de l’entreprise est écrit en ordre inversé : com.example au lieu de example.com. Ce système garantit l’unicité globale des identifiants car chaque nom de domaine est intrinsèquement unique.

Préfixes standards

Les développeurs utilisent généralement un préfixe correspondant au TLD de leur domaine : com pour les organisations commerciales, org pour les organisations à but non lucratif, io pour les projets technologiques, net pour les services et solutions réseau. Pour les projets personnels, com.github.username ou com.email est acceptable.

  • com.company.app — format standard pour les applications commerciales
  • org.company.app — pour les projets à but non lucratif et open-source
  • io.company.app — populaire parmi les startups et produits SaaS
  • com.github.username — pour les projets personnels sur GitHub

Conventions pour les projets multiplateformes

Pour les applications publiées sur iOS et Android, il est recommandé d’utiliser le même identifiant sur les deux plateformes. Cela simplifie l’intégration avec Firebase, AppsFlyer, Adjust et autres systèmes d’analyse qui se lient à l’identifiant du projet. Par exemple, com.mycompany.myapp sera le Bundle ID sur iOS et le Package Name sur Android.

Configurer Package Name dans un projet Android

La configuration du Package Name dans un projet Android implique la modification de l’applicationId dans build.gradle et de la structure de répertoires du code source Java/Kotlin correspondante. Android Studio fournit des outils de refactorisation du Package Name, mais pour les projets complexes, une migration étape par étape est recommandée.

Structure de répertoires et Package Name

kotlin
// Le chemin du fichier correspond au Package Name
// com/example/myapp/MainActivity.kt

package com.example.myapp

import android.os.Bundle
import androidx.activity.ComponentActivity

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
}

Dans Kotlin et Java, le Package Name dans les fichiers source doit correspondre à la structure de répertoires. Lors du changement du Package Name dans build.gradle, vous devez déplacer les fichiers vers les répertoires correspondants et mettre à jour toutes les déclarations package et import. Android Studio peut le faire automatiquement via Refactor -> Move, mais pour les grands projets avec des dizaines de fichiers, il est recommandé de vérifier le résultat après la refactorisation.

Si le projet utilise Data Binding, View Binding ou Hilt, le changement du Package Name affectera également les classes générées. Les classes de binding sont créées en fonction du Package Name du module et du répertoire layout. Après avoir changé l’identifiant, vous devrez reconstruire le projet pour mettre à jour toutes les références générées. Il est recommandé d’effectuer une clean build après le changement du Package Name pour éviter les erreurs dues aux anciennes références en cache.

Dans Gradle 7.0+, la prise en charge de namespace dans build.gradle a été introduite, remplaçant le champ package dans AndroidManifest.xml pour la génération de la classe R et des ressources. Pendant ce temps, applicationId reste l’identifiant réel de l’application pour le système et Google Play. Cela permet d’avoir des applicationId et namespace différents, ce qui est utile pour les modules de bibliothèque où le namespace est fixe tandis que l’identifiant public peut changer lors du build.

Pour les projets avec une architecture modulaire, le changement du Package Name d’un module peut affecter les imports dans d’autres modules. Si le module data a le package com.example.data et que le module domain utilise ses classes, après le changement d’identifiant, mettez à jour les imports dans tous les modules dépendants. Android Gradle Plugin version 8.0+ simplifie ce processus avec la génération automatique de namespace depuis build.gradle.

Vérifier Package Name via le code

Pour obtenir l’Application ID actuelle, utilisez la classe BuildConfig : BuildConfig.APPLICATION_ID. C’est pratique pour la logique conditionnelle dans le code, la liaison à l’environnement ou l’affichage de l’identifiant dans les écrans de debug. BuildConfig est généré automatiquement en fonction de build.gradle.

kotlin
// Obtenir l’Application ID à l’exécution
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

println("App version: ${appInfo.versionName} (${appInfo.versionCode})")
println("Package: $packageName")

Modifier Package Name après publication

Modifier le Package Name après avoir publié une application sur Google Play est une opération qui signifie créer un tout nouveau produit. Le système ne permet pas de mettre à jour une application existante avec un Package Name différent, donc décider de changer l’identifiant équivaut à redémarrer le projet dans le store.

Conséquences du changement de Package Name

Lors du changement de Package Name sont perdus : toutes les notes et avis, les statistiques d’installation, l’intégration Google Services (si non migrée), les liens du projet Firebase (nécessite la création d’un nouveau google-services.json). Les utilisateurs ne recevront pas de mise à jour automatique — ils verront la nouvelle application dans le store.

  • Notes et avis — restent avec l’ancienne application, non transférés
  • Statistiques d’installation — réinitialisées pour le nouveau Package Name
  • Projets Firebase — nécessitent une nouvelle configuration google-services.json et une reconfiguration de tous les services
  • Utilisateurs — ne reçoivent pas de mises à jour automatiques, doivent être notifiés séparément

Quand le changement de Package Name est justifié

Changer le Package Name peut être justifié lors d’un changement de marque de l’entreprise, du transfert de l’application vers un autre compte développeur, ou de la création d’une version séparée pour une autre région. Dans tous les cas, avant le changement, il est recommandé d’informer les utilisateurs via l’ancienne application et de préparer un plan de migration avec transfert de données. Sans plan de migration, les utilisateurs perdront l’accès au contenu acheté, aux abonnements et aux données sauvegardées de l’application. La migration inclut le transfert de la base de données et des fichiers via SharedPreferences ou Room.

Avant de changer le Package Name, assurez-vous que le nouvel identifiant est unique et respecte les règles de nommage. Créez une nouvelle application dans Google Play avec le nouveau Package Name et publiez-la comme un produit séparé. Dans la description de l’ancienne application, fournissez un lien vers la nouvelle. Envisagez d’utiliser Google Play Custom Store Listing pour rediriger les utilisateurs.

Questions fréquentes

Puis-je utiliser un trait d’union ou un tiret bas dans Package Name ?

Dans Package Name, le tiret bas (_) est autorisé, mais pas le trait d’union (-). Les tirets bas sont rarement utilisés mais acceptables : com.example.my_app. Les traits d’union sont interdits par les règles de Google Play et provoqueront une erreur lors de la publication. Il est recommandé d’utiliser uniquement le point comme séparateur de segments.

Quelle est la différence entre Package Name et Application ID dans build.gradle ?

Package Name est l’identifiant dans AndroidManifest.xml utilisé pour la résolution des ressources et la génération de la classe R. Application ID est le champ dans build.gradle qui détermine l’identifiant de l’application pour le système et le Google Play Store. Il est recommandé de les garder identiques, mais des différences sont autorisées lors de l’utilisation de applicationIdSuffix.

Comment choisir le bon Package Name pour un nouveau projet ?

Utilisez la notation de domaine inversé de votre entreprise ou pseudo : com.domain.appname. Assurez-vous que l’identifiant est unique dans Google Play. Évitez les mots courants (todo, test, app) et vérifiez si l’identifiant n’est pas déjà pris par un autre développeur en recherchant sur Google Play.

Puis-je changer le Package Name avant de publier sur Google Play ?

Oui, avant de publier sur Google Play, le Package Name peut être changé sans conséquences. Après le changement, vous devrez regénérer google-services.json, mettre à jour la structure de répertoires et vérifier tous les imports. Android Studio fournit des outils Refactor -> Move pour automatiser le processus.

Comment le Package Name est-il lié à la signature de l’application ?

Le Package Name avec le certificat de signature forme une liaison unique qui identifie l’application dans Google Play. Même si deux applications ont des Package Names différents, elles peuvent être signées avec la même clé. Le changement de certificat de signature est possible via Key Rotation dans la Play Console sans perte de l’identifiant.

Résumé

  • Package Name — identifiant unique d’application Android au format de notation de domaine inversé
  • Règles de nommage — lettres latines, chiffres, point, tiret bas ; maximum 150 caractères
  • Domaine inversé garantit l’unicité globale : com.company.appname
  • Application ID dans build.gradle correspond au Package Name et peut avoir des suffixes de build
  • Modifier après publication impossible — la nouvelle app perd notes et avis
  • Android Studio fournit des outils de refactorisation pour des changements sûrs avant publication
  • Recommandation — choisir un identifiant significatif avant publication, éviter les noms courants et déjà pris

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi