Xamarin.Auth:更新应用时,帐户数据不会保留

我正在使用Xamarin.Auth对foursquare等服务进行身份validation。 我的身份validation代码运行良好,问题是当我部署新版本的应用程序时,帐户数据不会保留 – 每次我在手机上部署测试版本时,我都要重新进行身份validation。

这是我存储帐户的方式;

///  /// Stores the account. ///  private void StoreAccount(AuthenticatorCompletedEventArgs eventArgs) { if (!eventArgs.IsAuthenticated) // make sure we are authenticated. { Log.Debug(Logging.AppTag, "FourSquareClient can't store account as auth. is cancelled. "); return; } this.IsAuthenticated = true; this.Account = eventArgs.Account; AccountStore.Create(this.OwnerContext).Save(eventArgs.Account, "Foursquare"); } 

这是我如何检查我们是否有一个存储帐户;

  ///  /// Retrieves stored account. ///  private void RetrieveAccount() { if (this.IsAuthenticated) { Log.Debug(Logging.AppTag, "FourSquareClient is already authenticated! "); return; } var accounts = AccountStore.Create(this.OwnerContext).FindAccountsForService("Foursquare"); var enumerable = accounts as IList ?? accounts.ToList(); if (enumerable.Any()) { Log.Info(Logging.AppTag, "Foursquareclient found account data."); this.IsAuthenticated = true; this.Account = enumerable.First(); } else { Log.Info(Logging.AppTag, "Foursquareclient no account data found!"); this.IsAuthenticated = false; this.Account = null; } } 

默认行为是每次部署应用程序时都会重置Android设置。 为了防止这种情况,在Xamarin Studio – > Preferences – > Android – >中选中“在应用程序部署之间保留数据/缓存”

如果您使用的是Visual Studio,则应该有类似的设置。