Package Name — qué es, notación de dominio inverso y requisitos

Autor: IT Sectr Publicado: 2026-04-17 Tiempo de lectura: 8 min

Package Name es un identificador único para aplicaciones Android basado en la notación de dominio inverso (reverse domain notation). El sistema lo utiliza para distinguir aplicaciones en el dispositivo del usuario, Google Play para identificar el producto y los servicios de Firebase para vincular todas las configuraciones del proyecto. Según la Documentación para Desarrolladores de Android, Package Name permanece sin cambios durante todo el ciclo de vida de la aplicación después de su publicación.

Puntos Clave

  • Package Name — identificador global de aplicaciones Android en formato de dominio inverso
  • Formato utiliza el dominio de la empresa en orden inverso: com.example.app
  • Unicidad verificada por Google Play al publicar — los duplicados están prohibidos
  • Cambiar Package Name tras la publicación es imposible sin crear una nueva app
  • Application ID en build.gradle corresponde a Package Name y se configura por separado

Qué es Package Name en Android

Package Name es una cadena única que Android utiliza para identificar una aplicación a nivel de sistema operativo. Corresponde al campo package en el archivo AndroidManifest.xml y al campo applicationId en el archivo build.gradle del módulo de la aplicación. Sin un Package Name único, es imposible instalar una aplicación en el dispositivo del usuario.

Propósito de Package Name

En el dispositivo, Package Name sirve como clave para la gestión de aplicaciones: el sistema almacena datos, configuraciones y caché de cada aplicación en el directorio /data/data/[packageName]. Dos aplicaciones con el mismo identificador no pueden coexistir — al intentar instalar un duplicado, el sistema solicita eliminar la existente.

Package Name y Application ID

En Android Gradle Plugin versión 0.11+ se introdujo una separación entre Package Name (en el manifiesto) y Application ID (en build.gradle). Application ID es el identificador real de la aplicación para el sistema y Google Play. Package Name en el manifiesto se utiliza para la resolución de recursos y la generación de la clase R. Se recomienda mantenerlos iguales para simplificar.

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

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

El campo applicationIdSuffix permite agregar un sufijo al Application ID para diferentes configuraciones de compilación. Una versión debug puede tener el identificador com.example.app.debug, lo que permite instalarla junto a la versión de producción para pruebas paralelas.

Reglas de Nomenclatura de Package Name

Google Play establece reglas estrictas para Package Name que deben cumplirse al publicar. El identificador debe ser único en toda la tienda, cumplir con los requisitos sintácticos y no violar las políticas de marcas comerciales.

Requisitos Sintácticos

Package Name solo puede contener letras latinas (A-Z, a-z), dígitos (0-9), un punto (.) y el guión bajo (_). La longitud máxima es de 150 caracteres. Cada segmento entre puntos debe comenzar con una letra. Los guiones, espacios y caracteres especiales están prohibidos por las reglas de Google Play.

RequisitoValorEjemplo
Caracteres PermitidosLetras latinas, dígitos, punto, guión bajocom.example.my_app
Longitud Máxima150 caracterescom.example.verylongappname
Inicio de SegmentoSolo letracom — no 3com
ProhibidoGuiones, espacios, cirílicocom.example-app — error
UnicidadGlobal en Google PlayVerificado al crear

Requisitos de Unicidad

La unicidad de Package Name es un requisito absoluto de Google Play Store. Si otra aplicación ya utiliza el identificador seleccionado, la publicación será rechazada. Google no libera los identificadores de aplicaciones eliminadas, por lo que elegir el primer Package Name es una decisión crítica para cada desarrollador.

Notación de Dominio Inverso y Convenciones

La notación de dominio inverso es un estándar de nomenclatura donde el nombre de dominio de la empresa se escribe en orden inverso: com.example en lugar de example.com. Este sistema garantiza la unicidad global de los identificadores porque cada nombre de dominio es inherentemente único.

Prefijos Estándar

Los desarrolladores suelen usar un prefijo que corresponde al TLD de su dominio: com para organizaciones comerciales, org para organizaciones sin fines de lucro, io para proyectos tecnológicos, net para servicios y soluciones de red. Para proyectos personales, se acepta com.github.username o com.email.

  • com.company.app — formato estándar para aplicaciones comerciales
  • org.company.app — para proyectos sin fines de lucro y open-source
  • io.company.app — popular entre startups y productos SaaS
  • com.github.username — para proyectos personales en GitHub

Convenciones para Proyectos Multiplataforma

Para aplicaciones publicadas en iOS y Android, se recomienda usar el mismo identificador en ambas plataformas. Esto simplifica la integración con Firebase, AppsFlyer, Adjust y otros sistemas analíticos que se vinculan al identificador del proyecto. Por ejemplo, com.mycompany.myapp será el Bundle ID en iOS y Package Name en Android.

Configurar Package Name en Proyecto Android

Configurar Package Name en un proyecto Android implica cambiar el applicationId en build.gradle y la estructura de directorios del código Java/Kotlin correspondiente. Android Studio proporciona herramientas para la refactorización de Package Name, pero para proyectos complejos se recomienda una migración paso a paso.

Estructura de Directorios y Package Name

kotlin
// File path corresponde a 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)
    }
}

En Kotlin y Java, el Package Name en los archivos fuente debe coincidir con la estructura de directorios. Al cambiar el Package Name en build.gradle, debes mover los archivos a los directorios correspondientes y actualizar todas las declaraciones package e import. Android Studio puede hacer esto automáticamente mediante Refactor -> Move, pero para proyectos grandes con docenas de archivos, se recomienda verificar el resultado después de la refactorización.

Si el proyecto usa Data Binding, View Binding o Hilt, cambiar el Package Name también afectará a las clases generadas. Las clases de binding se crean basándose en el Package Name del módulo y el directorio layout. Después de cambiar el identificador, deberás reconstruir el proyecto para actualizar todas las referencias generadas. Se recomienda realizar una limpieza de compilación después de cambiar el Package Name para evitar errores de referencias antiguas en caché.

En Gradle 7.0+ se introdujo soporte para namespace en build.gradle, que reemplazó el campo package en AndroidManifest.xml para fines de generación de clase R y recursos. Mientras tanto, applicationId sigue siendo el identificador real de la aplicación para el sistema y Google Play. Esto permite tener diferentes applicationId y namespace, útil para módulos de biblioteca donde el namespace es fijo mientras el identificador público puede cambiar durante la compilación.

Para proyectos con arquitectura modular, cambiar el Package Name de un módulo puede afectar las importaciones en otros módulos. Si el módulo data tiene el paquete com.example.data y el módulo domain usa sus clases, después de cambiar el identificador, actualiza las importaciones en todos los módulos dependientes. Android Gradle Plugin versión 8.0+ simplifica este proceso con la generación automática de namespace desde build.gradle.

Verificar Package Name Mediante Código

Para obtener el Application ID actual, usa la clase BuildConfig: BuildConfig.APPLICATION_ID. Esto es útil para lógica condicional en código, vinculación con el entorno o mostrar el identificador en pantallas de depuración. BuildConfig se genera automáticamente basándose en build.gradle.

kotlin
// Obtención de Application ID en tiempo de ejecución
val packageName = BuildConfig.APPLICATION_ID
val packageManager = packageManager
val appInfo = packageManager.getPackageInfo(packageName, 0)

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

Cambiar Package Name Después de la Publicación

Cambiar Package Name después de publicar una aplicación en Google Play es una operación que implica crear un producto completamente nuevo. El sistema no permite actualizar una aplicación existente con un Package Name diferente, por lo que decidir cambiar el identificador equivale a reiniciar el proyecto en la tienda.

Consecuencias de Cambiar Package Name

Al cambiar Package Name se pierden: todas las calificaciones y reseñas, estadísticas de instalación, integración con Google Services (si no se migra), enlaces del proyecto Firebase (requiere crear un nuevo google-services.json). Los usuarios no recibirán una actualización automática — verán la nueva aplicación en la tienda.

  • Calificaciones y reseñas — quedan en la aplicación anterior, no se transfieren
  • Estadísticas de instalación — se reinician para el nuevo Package Name
  • Proyectos Firebase — requieren una nueva configuración de google-services.json y reconfiguración de todos los servicios
  • Usuarios — no reciben actualizaciones automáticas, deben ser notificados por separado

Cuándo Está Justificado Cambiar Package Name

Cambiar Package Name puede estar justificado durante un cambio de marca de la empresa, transferencia de la aplicación a otra cuenta de desarrollador o al crear una versión separada para otra región. En cualquier caso, antes del cambio se recomienda notificar a los usuarios a través de la aplicación anterior y preparar un plan de migración con transferencia de datos. Sin un plan de migración, los usuarios perderán el acceso al contenido comprado, suscripciones y datos guardados de la aplicación. La migración incluye transferir la base de datos y archivos mediante SharedPreferences o Room.

Antes de cambiar el Package Name, asegúrate de que el nuevo identificador sea único y cumpla con las reglas de nomenclatura. Crea una nueva aplicación en Google Play con el nuevo Package Name y publícala como un producto separado. En la descripción de la aplicación anterior, proporciona un enlace a la nueva. Considera usar Google Play Custom Store Listing para redirigir a los usuarios.

Preguntas Frecuentes

¿Se puede usar un guión o guión bajo en Package Name?

En Package Name se permite el carácter de guión bajo (_), pero no el guión (-). Los guiones bajos se usan raramente pero son aceptables: com.example.my_app. Los guiones están prohibidos por las reglas de Google Play y causarán un error durante la publicación. Se recomienda usar solo el punto como separador de segmentos.

¿Cuál es la diferencia entre Package Name y Application ID en build.gradle?

Package Name es el identificador en AndroidManifest.xml utilizado para la resolución de recursos y la generación de la clase R. Application ID es el campo en build.gradle que determina el identificador de la aplicación para el sistema y Google Play Store. Se recomienda mantenerlos iguales, pero se permiten diferencias al usar applicationIdSuffix.

¿Cómo elegir el Package Name correcto para un nuevo proyecto?

Usa la notación de dominio inverso de tu empresa o nickname: com.domain.appname. Asegúrate de que el identificador sea único en Google Play. Evita palabras comunes (todo, test, app) y verifica si el identificador ya está ocupado por otro desarrollador buscando en Google Play.

¿Se puede cambiar Package Name antes de publicar en Google Play?

Sí, antes de publicar en Google Play, Package Name se puede cambiar sin consecuencias. Después del cambio, deberás regenerar google-services.json, actualizar la estructura de directorios y verificar todas las importaciones. Android Studio proporciona herramientas Refactor -> Move para automatizar el proceso.

¿Cómo se relaciona Package Name con la firma de la aplicación?

Package Name junto con el certificado de firma forma un vínculo único que identifica la aplicación en Google Play. Incluso si dos aplicaciones tienen diferentes Package Names, pueden estar firmadas con la misma clave. Cambiar el certificado de firma es posible mediante Key Rotation en Play Console sin perder el identificador.

Resumen

  • Package Name — identificador único de aplicación Android en formato de notación de dominio inverso
  • Reglas de nomenclatura — letras latinas, dígitos, punto, guión bajo; máximo 150 caracteres
  • Dominio inverso garantiza unicidad global: com.company.appname
  • Application ID en build.gradle corresponde a Package Name y puede tener sufijos de compilación
  • Cambiar después de la publicación es imposible — la nueva app pierde calificaciones y reseñas
  • Android Studio proporciona herramientas de refactorización para cambios seguros antes de publicar
  • Recomendación — elegir un identificador significativo antes de publicar, evitar nombres comunes y ocupados

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto

Lea también