yoo*_*hok 12 android google-play in-app-update google-play-core
最近,谷歌在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()}")
}
}
Run Code Online (Sandbox Code Playgroud)
但result.updateAvailability()总是如此UpdateAvailability.UPDATE_NOT_AVAILABLE。
为此,我制作了一个带有先前版本代码的签名发行版APK。但这是行不通的。
他正在用模拟器来做。看起来像调试模式。
我该怎么做?
rpa*_*abi 63
测试应用内更新的正确方法是使用内部应用共享(不要与内部测试轨道混淆)。
./gradlew bundleReleaseor ./gradlew bundle<variant>。aab文件,该文件是下app/build/outputs/bundle/<variant>/。给出一个包含版本代码的体面名称。build.gradle并构建另一个包。注意:版本代码是整数,这是要递增的。版本名称不同,这无关紧要。如果您没有看到提示,并且您完全按照这些步骤操作,则很可能是您的代码存在问题。添加一些日志记录以查看代码中发生的情况。
在我们的测试中,以下内容无助于测试应用内更新(其他地方建议):
一旦通过内部应用程序共享测试成功,我仍然发现通过已发布版本测试应用程序内更新有些麻烦。经过一些试验,我能够成功地通过 Alpha 轨道进行测试。我在这里添加步骤(我假设您熟悉 Google Play 控制台的 Alpha 封闭轨道并将自己添加为 Alpha 测试人员列表):
我想类似的过程也适用于 Beta(开放式轨道)和生产轨道。
即使在通过 Google Play 提供更新之后,对于最终用户看到应用内更新,我认为可能需要相当长的时间(几天!)。Google Play 有其自身令人困惑的方式。祝你好运。
这为时已晚,但它可能会帮助其他开发人员。
截至今天,无法对调试版本进行应用内更新测试。您也不需要将您的 apk 放到 PlayStore 进行测试。最好的测试方法in-app-update是使用internal-app-sharing.
如果您一一按照以下步骤进行操作,您将能够成功测试。
in-app-update在您的设备中进行设置测试,https://developer.android.com/guide/playcore/in-app-updates#internal-app-分享在这里,我将用简单的语言写出相同的内容。
一旦你与建立完成internal-app-sharing的Play-Store,请确保您有2周的APK上传到内部应用程序共享的Play-Console,因此产生2个链接。两个 apk 都将使用相同的签名signing-key(不必与您用于签名生产的相同,任何虚拟签名密钥都可以使用)。
要知道,如何将 apk 上传到 Play-Console 上的内部应用共享,请按照此 lisk,https://support.google.com/googleplay/android-developer/answer/9844679? visit_id = 637437125318137239-1277036129 &rd=1
注意:确保您已卸载设备中具有相同软件包名称的所有预装应用程序。
注意:安装前,请确保您在 play-store 上使用的电子邮件 ID 已添加到 play-console 上 internal-app-sharing 的邮件列表中。
现在,一旦您使用链接安装了应用程序。现在,您需要再次创建一个具有更高版本代码(例如 101)的新签名 apk。并将这个apk上传到internal-app-sharing。
现在,从 internal-app-sharing 复制具有更高版本代码的链接。单击您设备上的此链接,它将带您进入游戏商店,但这次update将启用install按钮而不是按钮,因为您的设备中已经安装了具有较低版本代码的应用程序。
您不必单击 PlayStore 上的更新按钮。您只需单击该链接,即可在 PlayStore 上打开屏幕。现在关闭 PlayStore 应用程序。
现在,您可以从您的设备启动已安装的应用程序。
如果您的 in-app-update 实现没有问题,启动该应用程序将出现 PlayStore 中的更新对话框。
最后,如果它对您有任何帮助,请不要忘记点赞。继续编码!
就我而言,我已经完成了以下步骤:
启动时,它将在Google Play商店中检查新版本,并显示助手以对其进行更新。如果此解决方案只能在某台设备上使用,而不能在另一台设备上使用,请尝试使用相同的Google帐户登录,然后在该设备上再次尝试5个步骤。然后,您可以再次使用原始帐户。出于某种疯狂的原因,Google Play似乎“激活”了版本控件,并返回在其他设备中再次提供版本。
我不知道该如何做...
或尝试以下预定义的方法将帮助您测试应用程序更新是否可用。
FakeAppUpdateManager fakeAppUpdateManager = new FakeAppUpdateManager(this);
fakeAppUpdateManager.setUpdateAvailable(1); // add app version code greater than current version.
fakeAppUpdateManager.getAppUpdateInfo().addOnSuccessListener(new OnSuccessListener<AppUpdateInfo>() {
@Override
public void onSuccess(AppUpdateInfo appUpdateInfo) {
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE
&& appUpdateInfo.isUpdateTypeAllowed(AppUpdateType.FLEXIBLE)) {
System.out.println("checkForAppUpdateAvailability");
}
}
});
Run Code Online (Sandbox Code Playgroud)
嗯...我找到了解决方案。它与 Google I/O 2019 - 开发者主题演讲上的演示不一样。
我将签名的发布 apk 发布到内部开发人员版本中。而且效果很好。
或者您可以将其发布在“Alpha/Beta 封闭测试发布”上。
| 归档时间: |
|
| 查看次数: |
1869 次 |
| 最近记录: |