在调试设备上测试时显示UPDATE_NOT_AVAILABLE的应用内更新API

gau*_*mar 5 android kotlin google-play in-app-update google-play-core

我正在尝试集成新的应用内更新API,但无法测试其实现。似乎我的代码很好,因此我阅读了疑难解答,但无法理解本文档中的两点

确保您要测试的应用使用与Google Play可用的签名密钥相同的签名密钥进行签名。

  1. 在已连接设备上安装Apk时,如何在调试模式下使用相同的签名密钥签名?

如果您要测试的应用程序未显示可用更新,请检查您是否已正确设置了测试轨道。

  1. 是否必须在内部测试轨道上发布App以测试实施?

无论如何,我只想在我的设备上进行测试,我从Play商店版本中减少了版本代码,但始终显示UPDATE_NOT_AVAILABLE

这是代码:-

val appUpdateInfo: Task<AppUpdateInfo> = appUpdateManager.appUpdateInfo
appUpdateInfo.addOnSuccessListener {
    if (it.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE && it.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
        appUpdateManager.startUpdateFlowForResult(it, AppUpdateType.FLEXIBLE, this, 2);
    }else{
        toast("Not Available")
    }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ira 14

我在同样的问题上挣扎了几天,然后再次彻底阅读了文档。阅读有关应用内更新的官方文档的这一部分

该链接描述了正确的测试程序如下:

  1. 在您的测试设备上,确保您已经安装了满足以下要求的应用版本:

    • 该应用程序是使用内部应用程序共享 URL 安装的
    • 支持应用内更新
    • 使用的版本代码低于应用的更新版本
  2. 按照 Play 管理中心的说明操作,了解如何在内部共享您的应用。确保您上传的应用版本使用的版本代码高于您已在测试设备上安装的版本代码。

  3. 在测试设备上,仅单击应用程序更新版本的内部应用程序共享链接。不要从点击链接后看到的 Google Play 商店页面安装该应用程序。
  4. 从设备的应用程序抽屉或主屏幕打开应用程序。该更新现在应该可用于您的应用程序,您可以测试应用程序内更新的实现。

这也非常有用,因为您不必等待应用程序发布,您可以立即开始测试。


Abh*_*mar 7

截至今天,无法对调试版本进行应用内更新测试。您也不需要将您的 apk 放到 PlayStore 进行测试。最好的测试方法in-app-update是使用internal-app-sharing.

如果您一一按照以下步骤进行操作,您将能够成功测试。

  1. 要测试应用程序,测试人员必须首先在 PlayStore 中启用内部应用程序共享,请按照此链接进行相同操作,如何为 Android 启用内部应用程序共享?
  2. 如果您有足够的勇气了解官方文档,那么只需点击此链接即可in-app-update在您的设备中进行设置测试,https://developer.android.com/guide/playcore/in-app-updates#internal-app-分享

在这里,我将用简单的语言写出相同的内容。

一旦你与建立完成internal-app-sharingPlay-Store,请确保您有2周的APK上传到内部应用程序共享的Play-Console,因此产生2个链接。两个 apk 都将使用相同的签名signing-key(不必与您用于签名生产的相同,任何虚拟签名密钥都可以使用)。

  1. 首先,您将具有较低版本代码(例如 100)的应用内更新实现的 apk 上传到播放控制台上的内部应用共享。

要知道,如何将 apk 上传到 Play-Console 上的内部应用共享,请按照此 lisk,https://support.google.com/googleplay/android-developer/answer/9844679? visit_id = 637437125318137239-1277036129 &rd=1

注意:确保您已卸载设备中具有相同软件包名称的所有预装应用程序。

  1. 现在,您将上传的应用程序链接复制到 Play 控制台上的内部应用程序共享,并使用此链接在您的设备上安装该应用程序。

注意:安装前,请确保您在 play-store 上使用的电子邮件 ID 已添加到 play-console 上 internal-app-sharing 的邮件列表中。

  1. 现在,一旦您使用链接安装了应用程序。现在,您需要再次创建一个具有更高版本代码(例如 101)的新签名 apk。并将这个apk上传到internal-app-sharing。

  2. 现在,从 internal-app-sharing 复制具有更高版本代码的链接。单击您设备上的此链接,它将带您进入游戏商店,但这次update将启用install按钮而不是按钮,因为您的设备中已经安装了具有较低版本代码的应用程序。

  3. 您不必单击 PlayStore 上的更新按钮。您只需单击该链接,即可在 PlayStore 上打开屏幕。现在关闭 PlayStore 应用程序。

  4. 现在,您可以从您的设备启动已安装的应用程序。

如果您的 in-app-update 实现没有问题,启动该应用程序将出现 PlayStore 中的更新对话框。

最后,如果它对您有任何帮助,请不要忘记点赞。继续编码!


小智 6

我有 UPDATE_NOT_AVAILABLE 的类似问题。经过数小时的研究,这是我解决的方法:

  1. 使用 Google Play 商店安装一个版本的测试应用程序(我使用了内部测试轨道部署)

  2. 在 Play 管理中心推出另一个具有更高版本代码的版本(相同的内部测试轨道)

  3. 关闭测试应用程序和 Google Play 商店(不仅仅是回到家,使用最近的密钥并将它们刷掉)

  4. 打开 Google Play 商店并确保测试应用有可用更新(您可以在“我的应用和游戏”>“已安装”下查看)

  5. 现在打开测试应用程序并检查 UPDATE_AVAILABLE

这在推出后几乎立即对我有用


Arp*_* J. 6

手动测试的基本要求

为了在测试设备上手动执行完整的更新流程,您应该至少有两个版本号不同的应用程序版本:源版本和目标版本。

  • 具有较高版本号的源版本应在 Google Play 上发布,这是 Google Play 将标识为可用更新的版本。应在您的设备上安装具有较低版本号和集成 IAU(应用内更新)功能的目标版本,这是将要更新的版本。问题是,当应用程序请求 Google Play 检查可用更新时,它会将已安装应用程序的版本号与最后一个可用的内置 Google Play 的版本号进行比较。因此,只有在 Google Play 中的版本号高于设备上应用的实际版本时,才会触发 IAU 功能。
  • 源版本和目标版本都需要具有相同的包名称,并且应该使用相同的发布证书进行签名。
  • Android 5.0(API 级别 21)或更高版本。
  • 播放核心库 1.5.0 或更高版本。

更新不可用错误

首先,请仔细检查上述要求。如果您按照所有要求成功完成了上面列出的步骤,但仍然出现错误,请注意以下技巧。最可能的原因是由于内部缓存机制,Google Play 应用程序还不知道更新。为确保手动测试时缓存是最新的,您可以通过转到 Google Play 应用中的“我的应用和游戏”屏幕来刷新缓存版本。其他替代方法,您可以简单地在设置中清除 Google Play 应用程序的缓存。请注意,这只是一个测试问题,不会影响最终用户,因为无论如何缓存每天都会更新。

注意- App Bundle 对于 IAU 不是必需的。