2 votos

¿Los ID de APLICACIÓN (nombres de paquete) deben ser DNS inverso?

Siempre pensé que com.google.android.packageinstaller o pm se negarían a instalar un .APK si su manifiesto no incluía DNS inverso para el nombre del paquete.

Sin embargo, adb shell cmd package list packages devuelve package:android dentro de la lista de nombres de paquetes estándar. Es la única excepción, lo que en realidad lo hace más sorprendente.

Dentro de los administradores de paquetes comparables que utilizan esta estructura (como flatpak), el rDNS es obligatorio en el manifiesto del paquete. Esperaba que pm fuera igual.

Por lo tanto:

  • ¿Es esta regla verdadera para aplicaciones que el usuario instala pero no el sistema, quizás? O

  • ¿Puede un paquete simplemente tener cualquier nombre, pero existe la convención debido a la Play Store, u otra fuerza impulsora dentro del ecosistema?

5voto

John Dallman Puntos 103

Las instrucciones para configurar el ID de la aplicación en Android Studio dejan claro que este nombre no tiene nada que ver con los nombres de DNS. Parece un poco un nombre de DNS, pero no tienen una relación significativa.

Está relacionado con el espacio de nombres de Java o Kotlin utilizado dentro de la aplicación, pero no es sinónimo de eso; a menudo son lo mismo pero no necesariamente.

Cada aplicación de Android tiene un ID de aplicación único que se parece a un nombre de paquete Java o Kotlin, como com.example.myapp. Este ID identifica de manera única tu aplicación en el dispositivo y en la Google Play Store.

Aunque el ID de la aplicación parece un nombre de paquete tradicional de Kotlin o Java, las reglas de nombrado para el ID de la aplicación son un poco más restrictivas:

  • Debe tener al menos dos segmentos (uno o más puntos).
  • Cada segmento debe comenzar con una letra.
  • Todos los caracteres deben ser alfanuméricos o un guion bajo [a-zA-Z0-9_].

Se recomienda que hagas lo siguiente al establecer el ID de la aplicación:

  • Mantén el ID de la aplicación igual que el espacio de nombres. La distinción entre las dos propiedades puede ser un poco confusa, pero si las mantienes iguales, no tendrás problemas.
  • No cambies el ID de la aplicación después de publicar tu aplicación. Si lo cambias, la Google Play Store tratará la carga posterior como una nueva aplicación.
  • Define explícitamente el ID de la aplicación. Si el ID de la aplicación no está definido explícitamente utilizando la propiedad applicationId, tomará automáticamente el mismo valor que el espacio de nombres. Esto significa que cambiar el espacio de nombres cambia el ID de la aplicación, lo cual generalmente no es lo que quieres.

Para conocer las razones del orden de mayor a menor, en sentido contrario al orden menor a mayor de DNS, consulta esta pregunta de Stack Overflow.

Personalmente nunca he configurado un applicationId para una aplicación de Android, pero he tenido que usar identidades de aplicación muy similares en iOS. Cuando lo hice, evité deliberadamente usar el nombre de DNS de la empresa porque había cambiado varias veces en la década anterior. Parecía mejor usar la forma larga del nombre de la empresa, la línea de negocio (que había pasado entre varias divisiones varias veces) y una identidad para la aplicación individual.

Descubrirás que la alta dirección en empresas grandes no se preocupa por cualquier relación que puedas crear entre los nombres de DNS y los valores de applicationId de Android. Tienen personas que se encargan de esas cosas por ellos, los desarrolladores de aplicaciones. Si te quejas de que están creando problemas reorganizando la empresa, lo interpretarán como "No puedo hacer mi trabajo correctamente y soy lo suficientemente tonto como para hacerlo obvio".

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X