【问题标题】:Updated 64-Bit Xamarin Android App gets overridden by old 32-Bit version更新的 64 位 Xamarin Android 应用程序被旧的 32 位版本覆盖
【发布时间】:2019-06-24 09:57:30
【问题描述】:

根据 Google(要求),我在 Xamarin.Forms 应用中添加了 x64 位支持。当我将它侧载到运行当前存在的商店版本的测试设备上时,我无法完成安装。

卸载当前应用后,新应用安装正常,一切正常。

我将应用程序包转发给我们的测试人员,告诉他们卸载旧应用程序并收工。

今天我了解到,Play 商店版本 (v1.1.0) 以静默方式将当前应用 (v1.2+) 更新回旧版本。 我通过侧载确认了这一点。

在我的 Android 选项中,我有两个构建目标:

  • armeabi-v7a(旧版本)
  • arm64-v8a(新增)

我认为,该设备会选择正确的架构并完成它的工作。为什么版本号明显较低的旧应用可以更新新应用,反之则不行?

我是不是搞砸了?遗漏了一些设置或设置了错误的设置?

如果我检查我构建的 apk,每个架构的文件夹是并排的,正如预期的那样。存在正确的 .so 文件。 我正在开发 Visual Studio 2017。

Android Build Config

【问题讨论】:

  • 决定应用程序是否可以更新的是版本号而不是版本名称。确保本地版本中的版本号比 Play 商店中的版本号新。
  • 谢谢!太明显了。其中一个 git 提交弄乱了版本号,我没有检查它。

标签: c# android xamarin 64-bit


【解决方案1】:

我认为你应该关注应用程序的versionCode

用作内部版本号的正整数。此数字仅用于确定一个版本是否比另一个版本更新,数字越大表示版本越新。这不是向用户显示的版本号;该数字由下面的versionName 设置设置。 Android 系统使用versionCode 值防止用户安装低于其设备上当前安装版本的versionCode 的APK,从而防止降级。

该值是一个正整数,以便其他应用可以通过编程方式对其进行评估,例如检查升级或降级关系。您可以将该值设置为您想要的任何正整数,但是您应该确保应用程序的每个后续版本都使用更大的值。您无法将带有 versionCode 的 APK 上传到 Play 商店,而您已经在之前的版本中使用过。

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 2011-04-25
    • 2014-04-27
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-25
    • 2013-12-06
    相关资源
    最近更新 更多