c# - Xamarin.Forms:应用内更新未找到新版本
问题描述
我想使用应用内更新通过 AppCenter 分发公共更新。我仔细遵循了本指南:
https://docs.microsoft.com/en-us/appcenter/sdk/distribute/xamarin
我在本机应用程序中配置了 AppCenter Distribute 模块,如下所示:
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Distribute.ReleaseAvailable = OnReleaseAvailable;
Distribute.NoReleaseAvailable = OnNoReleaseAvailable;
Distribute.SetEnabledForDebuggableBuild(true);
AppCenter.LogLevel = LogLevel.Verbose;
AppCenter.Start("android= [ ... ]", typeof(Analytics), typeof(Crashes), typeof(Distribute));
LoadApplication(new App());
}
private bool OnReleaseAvailable(ReleaseDetails releaseDetails)
{
string versionName = releaseDetails.ShortVersion;
string versionCodeOrBuildNumber = releaseDetails.Version;
string releaseNotes = releaseDetails.ReleaseNotes;
Uri releaseNotesUrl = releaseDetails.ReleaseNotesUrl;
// custom dialog
var title = "Version " + versionName + " available!";
Task answer;
// On mandatory update, user can't postpone
if (releaseDetails.MandatoryUpdate)
{
answer = App.Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install");
}
else
{
answer = App.Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install", "Maybe tomorrow...");
}
answer.ContinueWith((task) =>
{
// If mandatory or if answer was positive
if (releaseDetails.MandatoryUpdate || (task as Task<bool>).Result)
{
// Notify SDK that user selected update
Distribute.NotifyUpdateAction(UpdateAction.Update);
}
else
{
// Notify SDK that user selected postpone (for 1 day)
// This method call is ignored by the SDK if the update is mandatory
Distribute.NotifyUpdateAction(UpdateAction.Postpone);
}
});
// Return true if you're using your own dialog, false otherwise
return true;
}
private void OnNoReleaseAvailable()
{
AppCenterLog.Info("Log", "No release available callback invoked.");
}
但是,永远不会触发 OnReleaseAvailable 方法。这是调用 AppCenter.Start() 方法时的 AppCenter 日志:
[AppCenter] HTTP 响应状态=404 有效负载={"code":"not_found","message":"错误:未找到 appId 的公开版本:67168064-b072-430e-b513-25171d1e8b5d"} [AppCenterDistribute] 无可用版本给当前用户。[AppCenterDistribute] 调用 listener.onNoReleaseAvailable。
新版本已通过 AppCenter 在 Google Play 商店中正确提交,并且更新可用。因此,为什么永远找不到版本?
解决方案
推荐阅读
- python - 如何在 python 介子管理的项目中包含 cython 文件?
- c++ - 如何在 C++ 中定义大型多维数组而不会出现此错误?
- android - 无法启动外部应用程序
- docker - 如何在 Docker 容器上安装 web_entreprise 插件
- django - Django 自定义组和权限
- python - 有没有一种简单的方法可以使用 Python 找到具有特定长度列表的所有子集?
- r - R中的多线3D图
- asp.net - 如何向 Reactjs.net 添加类(相当于从“”导入 style.css)
- python - 一次导入子模块,以便它可用于所有其他子模块和顶级模块
- django - python Django如何在CART Page上显示类别数据?