微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin.Forms:应用内更新找不到新版本

如何解决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,"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 payload={"code":"not_found","message":"错误:未找到 appId 的公开版本:67168064-b072-430e-b513-25171d1e8b5d"} [AppCenterdistribute] 当前用户没有可用的版本。 [AppCenterdistribute] 调用 listener.onnoreleaseAvailable。

新版本已通过 AppCenter 正确提交至 Google Play 商店,更新可用。因此,为什么从未找到该版本?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。