这里可能存在多个相关的问题。我正在尝试为单个xamarin解决方案构建的3个移动应用程序提供一个简单的版本号更新方案。
我正在寻找的是一种简单的方法,可以让所有这些值保持同步,而无需单独更新它们。
我当前的设置需要导航到4个不同的位置以手动同步版本号。
我有一个链接文件,其中包含AssemblyVersion和AssemblyFileVersion,它们由解决方案中的所有PCL和Platform项目共享,并带有以下信息。
[assembly: AssemblyVersion("2.1.1.*")]
[assembly: AssemblyFileVersion("2.1.1.0")]
单独在android项目下,我必须手动更新版本名称和版本号(int)
Version Name: 2.1.1
Version Number: 2
在iOS应用程序选项卡下,我还有2个字段需要填写。
Version Number: 2.1.1
Build Number: 0 //Not sure if I'm using this field correctly.
在WMAppManifest Property对话框的“Packaging”选项卡上,我还必须提供版本号。
Version Number: 2.1.1.0
答案 0 :(得分:5)
我们已经构建了一个工具来同步程序集,Android和iOS之间的版本;我刚把它推到我们的GitHub回购:https://github.com/soltechinc/soltechxf/。如果您克隆该repo并构建UpdateVersionInfo,它应该执行您正在寻找的内容。
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.
默认版本(即,如果不提供任何参数,您将获得的版本)是1.0.0.0。
该工具可以使用文件的相对路径或绝对路径,我的建议是遵循它已经听起来像你正在使用的方法:拥有一个包含在链接文件中的单个version.cs文件(或者在共享项目),并删除该Version.cs文件中包含的任何AssemblyInfo属性。
我应该补充;该工具目前假设您将使用C#代码更新iOS和Android项目。 (我刚给自己添加了一个便条纸,以便将它们作为可选项。)
编辑:刚刚注意到过去的安迪已经注意到并照顾它了(这是一个惊喜;我通常会在过去的安迪吼叫......)。如果您没有为Android清单或iOS Info.plist提供路径,它将跳过它们。答案 1 :(得分:1)
您可以查看xavtool。
典型流程:
$ 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