我正在尝试集成新的IN-App Update Api,但无法测试其实现。似乎我的代码很好,因此我阅读了Troubleshoots,但无法理解本文档中的2点
确保您要测试的应用使用与Google Play可用的签名密钥相同的签名密钥进行签名。
如果您正在测试的应用没有显示可用更新, 检查您是否已正确设置测试轨道。
无论如何,我只想在设备上进行测试,并从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")
}
}
答案 0 :(得分:2)
手动测试的基本要求
为了在测试设备上手动执行完整的更新流程,您应该至少具有两个版本的应用程序,且版本号不同:源版本和目标版本。
更新不可用错误
首先,请仔细检查上述要求。如果您按照所有要求成功完成了上面列出的步骤,但仍然出现错误,请注意以下技巧。 最可能的原因是由于内部缓存机制,Google Play应用尚不知道更新。要确保手动测试时您的缓存是最新的,可以通过以下方式刷新缓存的版本:转到Google Play应用中的“我的应用和游戏”屏幕。另外,您也可以在设置中清除Google Play应用的缓存。请注意,这只是测试问题,不会影响最终用户,因为无论如何缓存都是每天更新的。
注意-对于IAU,App Bundle不是必需的。
答案 1 :(得分:1)
我从Google Play安装了我的应用。然后我删除了它,并用较低的versionCode安装了签名的apk。
“应用内更新仅适用于拥有该应用的用户帐户。 因此,请确保您使用的帐户已从以下位置下载了您的应用 使用该帐户测试应用内功能之前,请至少Google Play一次 更新。” developer.android.com/guide/app-bundle/in-app-updates
答案 2 :(得分:1)
我遇到了类似的问题,即拥有UPDATE_NOT_AVAILABLE。经过数小时的研究,这是我的解决方法:
使用Google Play商店安装测试应用程序的一个版本(我使用内部测试轨道展示)
在Play控制台(相同的内部测试轨道)上推出具有更高版本代码的另一个版本
关闭测试应用和Google Play商店(不仅回到家中,使用最近的密钥并将其擦去)
打开Google Play商店并确保测试应用具有可用的更新(您可以在“我的应用和游戏”>“已安装”中进行检查)
现在打开测试应用程序并检查UPDATE_AVAILABLE
这在推出后几乎立即对我有效
答案 3 :(得分:1)
最后通过从Play商店->我的应用和游戏->库中删除该应用程序解决了此问题。
当您先前在设备上或任何在Play商店中共享相同Gmail地址的设备上安装了具有更高版本代码的同一应用时,就会发生这种情况。 希望这会有所帮助。
答案 4 :(得分:0)
对于第一个问题,他们说您需要使用发布密钥库对应用程序进行发布构建。然后,您可以将生成的.apk文件附加到电子邮件中,然后通过电子邮件发送给自己。然后,在您的android设备上检查您的电子邮件,然后将.apk附件下载到您的下载文件中,然后在下载结束时,Android应询问您是否要安装.apk,请回答“是”(如果没有询问) ,然后单击您的下载文件夹中的文件,然后它应该询问。)
对于第二个问题,我可以想象通过内部测试轨道进行测试的唯一方法,因为您必须与Google Play店面进行交互,但不影响实时发布的版本。
答案 5 :(得分:0)
还为此目的创建了FakeAppUpdateManager。 您可以使用它。
答案 6 :(得分:0)
首先,您必须将应用发布到Google Play。确保:
如果您想拥有一个运行中的演示应用程序,我上传的git repository的版本代码比我的published in Google Play的版本代码低。
答案 7 :(得分:0)
发布后,您需要等待2到6个小时。
答案 8 :(得分:0)
我为同一问题苦苦挣扎了几天,然后才再次彻底阅读文档。阅读this section,了解应用内更新的官方文档。
该链接描述了正确的测试过程,如下所示:
在测试设备上,确保已安装满足以下要求的应用程序版本:
- 该应用是使用内部应用共享网址安装的
- 支持应用内更新
- 使用的版本代码低于应用程序的更新版本
按照Play控制台说明如何在内部共享您的应用。确保您上传的应用程序版本使用的版本代码高于测试设备上已安装的版本代码。
- 在测试设备上,仅单击内部应用程序共享链接以获取应用程序的更新版本。单击链接后,请勿从显示的Google Play商店页面安装应用。
- 从设备的应用程序抽屉或主屏幕中打开应用程序。现在,该更新应可用于您的应用程序,并且您可以测试应用程序内更新的实现。
这也非常有用,因为您不必等待应用程序发布,就可以立即开始测试。
答案 9 :(得分:0)
内部应用程序共享在实际设备上不起作用。我进行了几个小时的测试,始终获得最新版本的内部测试,而不是我期望的内部应用程序共享之一。
我将逐步介绍:
APK 1: versionCode and versionName: 100
APK 2: versionCode and versionName: 101
使用versionCode和versionName 100将APK 1上载到internalappsharing
将APK 1的共享链接复制并粘贴到Keep Notes网络应用中。
最后,每当他们输入的链接的版本代码大于从仿真器上次安装的版本代码时,他们就会看到存在一个新的更新,应将其安装在应用程序中而不是从Play商店安装。
值得一提的是, Logcat 与内部应用程序共享兼容。
GL
答案 10 :(得分:0)
截止到今天,尚无法对调试版本进行应用内更新测试。您无需将apk放入PlayStore进行测试。测试in-app-update
的最佳方法是使用internal-app-sharing
。
如果您一步一步地执行以下步骤,则可以成功进行测试。
in-app-update
测试在这里,我会用简单的文字写出来。
在internal-app-sharing
中设置Play-Store
后,请确保必须将2个APK上传到Play-Console
上的内部应用共享中,并因此生成2个链接。这两个apk都将使用相同的signing-key
进行签名(不必与您用于生产的签名相同,任何虚拟签名密钥都可以使用)。
要知道,如何将apk上传到Play-Console上的内部应用共享,请遵循以下https://support.google.com/googleplay/android-developer/answer/9844679?visit_id=637437125318137239-1277036129&rd=1的说法
注意:请确保您已卸载设备中具有相同程序包名称的所有预安装应用。
注意:在安装之前,请确保您在Play商店上使用的电子邮件ID已添加到Play控制台上内部应用共享的邮件列表中。
现在,使用链接安装应用程序后。现在,您需要再次使用更高的VersionCode(例如101)创建一个新的签名APK。并将此apk上传到内部应用共享。
现在,从内部应用共享中复制具有更高VersionCode的链接。单击设备上的此链接,它将带您进入播放存储,但是这一次,将启用update
按钮,而不是install
按钮,因为您的设备中已经安装了版本号较低的应用。< / p>
您不必单击PlayStore上的更新按钮。您只需单击链接,然后在PlayStore上打开屏幕。现在关闭PlayStore应用。
现在,您可以从设备启动已经安装的应用。
如果您对应用程序内更新的实施正常,则启动应用程序将显示PlayStore中的对话框以进行更新。
答案 11 :(得分:-1)