linebreakmode formattedtext fontsize entry xamarin versioning xamarin.forms version-numbering

formattedtext - underline label xamarin forms



Esquema del número de versión de la aplicación móvil de Xamarin en 3 plataformas (2)

Hemos construido una herramienta para sincronizar versiones entre ensamblajes, Android e iOS; Acabo de enviarlo a nuestro repositorio de GitHub: https://github.com/soltechinc/soltechxf/ . Si clona ese repositorio y construye UpdateVersionInfo, debería hacer lo que está buscando.

UpdateVersionInfo.exe: -? Shows help/usage information. -v, --major=VALUE A numeric major version number greater than zero. -m, --minor=VALUE A numeric minor number greater than zero. -b, --build=VALUE A numeric build number greater than zero. -r, --revision=VALUE A numeric revision number greater than zero. -p, --path=VALUE The path to a C# file to update with version information. -a, --androidManifest=VALUE The path to an android manifest file to update with version information. -t, --touchPlist=VALUE The path to an iOS plist file to update with version information.

La versión predeterminada (es decir, la versión que obtendrá si no proporciona ninguno de los parámetros) es 1.0.0.0.

La herramienta puede usar rutas relativas o absolutas a los archivos, y mi recomendación es seguir el enfoque que parece que está usando: tener un solo archivo version.cs que incluya como un archivo vinculado (o en un proyecto compartido) y elimine todos los atributos de AssemblyInfo contenidos en ese archivo Version.cs.

Debería añadir la herramienta actualmente asume que actualizará un proyecto de iOS y Android junto con el código C #. (Acabo de agregarme una nota post-it para hacerlos opcionales).

EDIT: Acabo de notar que el pasado Andy ya lo notó y se encargó de eso (lo cual es una sorpresa; generalmente grito epítetos al pasado Andy). Si no proporciona una ruta para el manifiesto de Android o la lista de información de iOS, los omitirá.

Probablemente hay varias preguntas aquí todas relacionadas. Estoy tratando de encontrar un esquema de actualización de número de versión simple para nuestras 3 aplicaciones móviles creadas a partir de una única solución xamarin.

Lo que busco es una forma sencilla de mantener todos estos valores sincronizados entre sí sin tener que actualizarlos todos de forma individual.

  • La versión de Windows Phone debería configurarse en AssemblyVersion o FileVersion automáticamente
  • Número de versión de IOS se debe establecer en igual. (No estoy seguro de cuál debería ser el número de compilación)
  • Nombre de la versión de Android se debe establecer en igual.
  • El número de versión de Android debería incrementarse automáticamente para cada versión de compilación.

Mi configuración actual requiere navegar por 4 lugares diferentes para sincronizar manualmente los números de versión.

  1. Información de la Asamblea Global

Tengo un archivo vinculado que contiene AssemblyVersion y AssemblyFileVersion que comparten todos los proyectos PCL y Platform en la solución con la siguiente información.

[assembly: AssemblyVersion("2.1.1.*")] [assembly: AssemblyFileVersion("2.1.1.0")]

  1. Androide

Por separado en el proyecto de Android, tengo que actualizar manualmente el nombre de la versión y el número de versión (int)

Version Name: 2.1.1 Version Number: 2

  1. IOS

Debajo de la pestaña Aplicación de iOS, tengo 2 campos más para completar.

Version Number: 2.1.1 Build Number: 0 //Not sure if I''m using this field correctly.

  1. Telefono windows

En la pestaña "Embalaje" del cuadro de diálogo Propiedades de WMAppManifest, también tengo que proporcionar un Número de versión.

Version Number: 2.1.1.0


Podrías echarle un vistazo a xavtool .

Flujo típico:

$ xavtool current 1.0.1 - androidApp (.../test/AndroidManifest.xml) 1.0.1 - iOSApp (.../test/Info.plist) 1.0.1.0 - uwpApp (.../test/Package.appxmanifest) $ git flow release start ''1.1.0'' $ xavtool i 1.0.1: New version: 1.1.0 (.../test/AndroidManifest.xml) 1.0.1: New version: 1.1.0 (.../test/Info.plist) 1.0.1.0: New version: 1.1.0.0 (.../test/Package.appxmanifest) $ git commit -am "Version bump to 1.1.0" $ git flow release finish -p