La identidad: nombre, versión e identificador
Las tres claves de arriba del fichero deciden más de lo que parece: cómo te llama el sistema, qué compara el updater y a qué datos y credenciales tiene acceso tu aplicación. Una de las tres no se puede cambiar nunca.
Las tres claves
Por qué el identificador es irreversible
No es una limitación del framework: es cómo funcionan los tres sistemas operativos. El identificador es la clave primaria con la que el sistema te reconoce, y de ella cuelga todo lo demás:
De ahí sale la única recomendación práctica del nivel: elige el identificador antes de que exista el primer usuario, y elígelo con un dominio que controles. Si no controlas ninguno, algo con tu nombre es infinitamente mejor que el com.tauri.dev que trae el asistente.
Las reglas de forma
Cada plataforma impone las suyas, y el conjunto que funciona en las tres es más estrecho de lo que parece:
- Notación de dominio invertido, con al menos dos segmentos:
dev.wandres.catalogo. - Solo letras, números, guiones y puntos. Nada de guiones bajos, y aquí es donde tropieza más gente:
dev.wandres.mi_appno vale. - No puede terminar en punto ni tener segmentos vacíos.
- Distingue mayúsculas en unos sistemas y en otros no, así que conviene escribirlo entero en minúsculas y no volver a pensarlo.
El validador de la configuración rechaza los identificadores mal formados al compilar, que es la primera red del nivel 6.3 haciendo su trabajo.
La versión, y cómo no mantenerla dos veces
La versión aparece en al menos dos sitios de un proyecto: aquí y en el package.json del frontend. Y si el paquete de Rust también la lleva, en tres. Tres copias de un número que tiene que coincidir es una receta conocida.
La configuración acepta, en lugar de un número, la ruta a un fichero de paquete del que leerla:
{ "version": "../package.json"}Con eso hay una sola fuente y el resto se deriva. Es lo que conviene hacer desde el primer día, porque el fallo de tener versiones desincronizadas no se manifiesta en desarrollo: se manifiesta en el updater, que compara la versión del manifiesto con la del binario y decide que no hay nada nuevo.
Y una precisión que ahorra un rato de desconcierto: la versión del Cargo.toml no es la de la aplicación. Es la del paquete de Rust, y a Tauri no le importa. Puedes sincronizarlas si quieres orden, pero la que manda para el usuario y para el updater es esta.