我有一个在 Play 商店发布的 Android 应用程序。我正在尝试在 App 更新中实现并使用 android 内部轨道共享对其进行测试。
为了在内部轨道上分享,我尝试了关注,一切都给了我相同的结果。 1.创建的应用程序。使用应用程序的发布 key 签名 2. 创建 aap 包。使用应用程序的发布 key 签名 3.创建了Apk。在没有签名的情况下将其保持在 Debug模式 4. 创建 aap 包。在没有签名的情况下将其保持在 Debug模式。
在上述所有场景中,在将应用程序上传到内部测试轨道并从 url 下载后,会发现遵循一致的行为。
- appUpdateInfoTask.addOnSuccessListener 在应用程序启动时调用
- appUpdateInfo.availableVersionCode() 返回内部测试轨道应用的版本代码,而不是生产可用的更新。
- appUpdateInfo.updateAvailability() 返回更新不可用。
除了在 logcat 中,我们还会获得以下兴趣点日志。
(app package name) is installed but certificate mismatch.
我的应用更新代码如下。
private void checkforappupdate() {
Log.v("oneteamlive",".........checking for application update....");
// Creates instance of the manager.
AppUpdateManager appUpdateManager = AppUpdateManagerFactory.create(this);
// Returns an intent object that you use to check for an update.
Task<AppUpdateInfo> appUpdateInfoTask = appUpdateManager.getAppUpdateInfo();
// Checks that the platform will allow the specified type of update.s
appUpdateInfoTask.addOnSuccessListener(
appUpdateInfo -> {
Log.v("oneteamlive","in app update info listenere");
Log.v("oneteamlive","Available version code is:"+appUpdateInfo.availableVersionCode());
Log.v("oneteamlive","Available version code is:"+appUpdateInfo.updateAvailability());
if (appUpdateInfo.updateAvailability() == UpdateAvailability.UPDATE_AVAILABLE)
{
// Request the update.
Log.v("oneteamlive","A new update is available");
Toast.makeText(this,"A new update is available",Toast.LENGTH_LONG).show();
}
else
{
Log.v("oneteamlive","no app update is available");
}
});
}
我仔细检查了我的 Playstore 是否已完全关闭,并且可以使用更高版本的代码在 PlayStore 上进行更新。
还有其他人也遇到过类似的问题吗??
最佳答案
我也遇到了完全一样的问题,不知道是不是内测轨道的app被google下架了。显然,内部共享的应用程序正在根据以下原因辞职:https://support.google.com/googleplay/android-developer/answer/9844679?hl=en&visit_id=637491136221021613-3110759148&rd=1 但是对于内部测试轨道,当我下载应用程序时,我可以看到公共(public)证书与我在上传到谷歌游戏商店之前创建的 apk 完全匹配。
关于Android inApp 更新总是显示更新不可用和证书不匹配警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61406825/