跨 3 个平台的 Xamarin 移动应用版本号方案

2024-04-01

这里可能有多个相关的问题。我正在尝试为我们从单个 xamarin 解决方案构建的 3 个移动应用程序提出一个简单的版本号更新方案。

我正在寻找一种简单的方法来保持所有这些值彼此同步,而不必四处走动并单独更新它们。

  • Windows Phone 版本应自动设置为 AssemblyVersion 或 FileVersion
  • IOS 版本号应设置为相同。 (不确定内部版本号应该是多少)
  • Android 版本名称应设置为相同。
  • Android 版本号应针对每个版本构建自动递增。

我当前的设置需要导航到 4 个不同的位置来手动同步版本号。

  1. 全球装配信息

我有一个链接文件,其中包含解决方案中所有 PCL 和平台项目共享的 AssemblyVersion 和 AssemblyFileVersion 以及以下信息。

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

单独在android项目下,我必须手动更新版本名称和版本号(int)

Version Name: 2.1.1
Version Number: 2
  1. IOS

在 iOS 应用程序选项卡下,我还有 2 个字段需要填写。

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

在 WMAppManifest 属性对话框的“打包”选项卡上,我还必须提供版本号。

Version Number: 2.1.1.0

我们构建了一个工具来同步程序集、Android 和 iOS 之间的版本;我刚刚将其推送到我们的 GitHub 存储库:https://github.com/soltechinc/soltechxf/ https://github.com/soltechinc/soltechxf/。如果您克隆该存储库并构建 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 属性。

我应该补充一下;该工具当前假设您将更新 iOS 和 Android 项目以及 C# 代码。 (我刚刚给自己添加了一张便利贴,使这些成为可选的。)

编辑:刚刚注意到过去的安迪已经注意到了这一点并处理了它(这是一个惊喜;我通常对过去的安迪大喊脏话......)。如果您不提供 Android 清单或 iOS Info.plist 的路径,它将跳过它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跨 3 个平台的 Xamarin 移动应用版本号方案 的相关文章

  • 如何在 Xamarin.Forms 中强制使用浅色模式?

    我的应用程序的 UI 设计为在灯光模式下使用 但如果手机的默认主题是深色模式 我的应用程序也会切换到深色模式 并且 UI 看起来很垃圾 所以我想强制我的应用程序使用灯光模式 我怎样才能做到这一点 In my app xaml我使用的文件Us
  • 在 Monogame 和 UIKit 之间切换

    我一直在搜索和搜索 但似乎找不到适合我想做的事情的解决方案 而且我几乎已经到了不得不问它是否可能的地步 我正在使用 Xamarin Studio 开发 iOS 应用程序 我有几个不同的屏幕设置为 UIViewController 它们运行良
  • 如何在 Xamarin 中调整按钮大小

    我正在使用 Xamarin Forms 我尝试了这段代码 但没有成功 我怎样才能调整按钮的大小
  • 使用 xamarin 表单的 android 13 上的存储权限问题

    我在 Visual Studio 2022 的帮助下为我的 Android 项目使用 xamarin forms 当我将代码运行到我的移动 Android 13 时 我没有获得 Android 13 的弹出权限 我只是将 androidta
  • 具有可绑定属性的自定义视图未在 Xamarin.Forms SAP 上正确绑定

    我有一个复选框 应该触发按钮的 IsEnabled 事件 但不知何故 应该执行的命令永远不会正确绑定并因此执行 这是 CheckBox xaml cs 控件 中的可绑定属性 public static readonly BindablePr
  • 礼仪:版本会影响我的开源项目分支吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这个问题是关于礼仪和开源项目的 我从 github 分叉了一个应用程序并添加了两个新功能 The 第一个特征在其他地方经常被要求 我已经添加了
  • 目标“MonoAndroid,版本= v6.0”项目依赖项

    我的 Visual studio 2017 nuget 包无法安装 Xamarin Forms 可移植类库项目中出现以下错误 严重性代码 说明 项目文件行抑制状态 错误无法安装包 Xamarin Android Support Compat
  • Xamarin Dim 页面(主详细信息页面)

    因此 对于 Android 当显示主从页面的母版页时 母版页会被 黑色暗淡 视图覆盖 因此很容易用眼睛区分这两个页面 在 iOS 中 详细信息页面不会变暗 因此更难区分视图 有没有办法用 黑色半透明 的 BoxView 或 Frame 覆盖
  • 使用 GIT 自动增加 AssemblyFileVersion

    好吧 我知道这可能不是传统的 但除此之外 我使用 AssemblyFileVersion 作为我的 构建名称 字符串 它的格式如下 File Version information for an assembly consists of t
  • PHP 版本如何匹配“API=yyyymmdd”签名/标签?

    是否有明确且可靠的来源来找出哪个 PHP 发行版本 x y z 携带 使用哪个 API yyyymmdd 签名 标签 PHP 的版本控制存储库是 PHP 版本与其 API 日期版本之间相关性的权威来源 请记住 仅主要版本PHP 的版本 例如
  • 如何调试仅在发布模式下崩溃的 Android 应用程序

    在调试模式下一切正常 但在发布模式下崩溃 调试模式下有哪些所需权限在发布模式下未打开 EDIT 当我将 链接 设置为 无 时 我会通过第一个屏幕进入 登录 屏幕 但是 当我添加发布权限时Internet 第一次尝试读取远程实体框架核心表时它
  • 构建成功时,Intellisense 不断显示错误 Visual Studio 2015

    因此 我正在开发一个 Xamarin 项目 突然 Visual studio 2015 开始崩溃 它几乎在所有内容下都显示错误红线 例如 InitializeComponent 在每个页面中都有红线 项目构建和运行没有错误 错误仅来自 In
  • NSTable行点击事件

    我正在开发 Xamarin Mac 应用程序 目前正在创建新闻源列表 我想要的是 当用户单击其中一行时 我会执行一些操作 打开浏览器并显示完整的故事 这是我的自定义单元格 行 的样子 public class CustomLatestNew
  • Visual Studio:Xamarin - 启动 Android 模拟器时出错

    遇到的问题https dotnet microsoft com learn xamarin hello world tutorial devicesetup https dotnet microsoft com learn xamarin
  • 如何在 Visual Studio for Mac 上开发 Windows 应用程序

    我最近购买了一台iMac 以便在更好的环境中在Visual Studio for Mac上开发我的应用程序 Windows上有很多问题 但是在Visual Studio for mac上 没有UWP项目 据了解 我必须创建一个新的 NET
  • 谷歌地图url如何定义圆形标记?

    我想打开默认地图应用程序 但我想要一个圆形标记 而不是默认标记 这就是我所拥有的 case Device Android if string IsNullOrEmpty imovel Endereco Freguesia uri new U
  • 确定我的 Silverlight 应用程序的版本

    我正在尝试确定 Silverlight 应用程序的版本号 目前我正在使用 string name Assembly GetExecutingAssembly FullName AssemblyName asmName new Assembl
  • xamarin studio 中有包管理器控制台吗

    我正在使用 xamarin studio 带有 nuget 包管理插件 并且在我的项目中有一些 nuget 包 项目上下文菜单中有 管理 和 恢复 nuget 包 但也有控制台吗 Xamarin Studio 和 MonoDevelop 的
  • 自动保存笔记本(或mathematica中的其他类型文件)文件

    我现在有时会遇到这个问题 部分原因是 Microsoft Office 自动保存您正在使用版本和自动恢复处理的文件 很多时候 当我在mathematica中启动一个新笔记本来做一些测试或其他事情时 我经常忘记保存我正在做的事情 时不时地 根
  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不

随机推荐