最近,谷歌在 Google I/O 2019 中引入了“应用内更新”。
所以我正在尝试使用它。
val appUpdateManager = AppUpdateManagerFactory.create(this)
val appUpdateInfo = appUpdateManager.appUpdateInfo
appUpdateInfo.addOnCompleteListener {
val result = it.result
if (result.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
&& result.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
info("should show update")
appUpdateManager.startUpdateFlowForResult(
result,
AppUpdateType.FLEXIBLE,
this,
1)
} else {
info("This is already latest version: ${result.updateAvailability()}")
}
}
但是 result.updateAvailability()
总是 UpdateAvailability.UPDATE_NOT_AVAILABLE
。
为此,我使用以前的版本代码制作了一个已签名的发布 apk。但它不起作用。
根据 Developer Keynote 上的演示 (16:40 ~ )
他正在用模拟器来做。它看起来像调试模式。
我怎样才能做同样的事情?
原文由 yoonhok 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用内部应用共享进行测试
测试应用内更新的正确方法是使用 Internal App Sharing(不要与 Internal Testing Track 混淆)。
./gradlew bundleRelease
或./gradlew bundle<variant>
。aab
文件,该文件位于app/build/outputs/bundle/<variant>/
下。给一个包含版本代码的体面的名字。build.gradle
并构建另一个包。注意:版本号是整数,就是要递增的。版本名称不同,对此无关紧要。如果您没有看到提示 ,并且 您完全按照这些步骤操作,很可能是您的代码有问题。添加一些日志记录以查看您的代码中发生了什么。
在我们的测试中,以下内容无助于测试应用内更新(在其他地方建议):
使用 Alpha 进行测试(封闭轨道)
通过内部应用共享测试成功后,我仍然发现通过已发布版本测试应用内更新存在一些问题。经过一些尝试,我能够成功通过Alpha track进行测试。我在此处添加步骤(我假设您熟悉 Google Play 控制台的 Alpha 封闭轨道并将您自己添加为 Alpha 测试人员列表):
我想类似的过程也适用于 Beta(开放轨道)和生产轨道。
即使在通过 Google Play 提供更新后,要让最终用户看到应用内更新,我认为可能需要相当长的时间(几天!)。 Google Play 有自己令人困惑的方式。祝你好运。