Xamarin iOS应用程序中供应商和钥匙链访问的UIDevice.CurrentDevice.Identifier
我们的旧应用程序是用Objective编写的。新应用程序是Xamarin应用程序。两个应用程序具有相同的捆绑包标识符 从旧应用升级到新应用时,我遇到了一些问题。 为了升级,我从appstore安装了旧的应用程序,然后在上面部署Xamarin Studio的新应用程序 当应用程序首次运行时,它访问供应商的Xamarin iOS应用程序中供应商和钥匙链访问的UIDevice.CurrentDevice.Identifier,ios,xamarin,keychain,Ios,Xamarin,Keychain,我们的旧应用程序是用Objective编写的。新应用程序是Xamarin应用程序。两个应用程序具有相同的捆绑包标识符 从旧应用升级到新应用时,我遇到了一些问题。 为了升级,我从appstore安装了旧的应用程序,然后在上面部署Xamarin Studio的新应用程序 当应用程序首次运行时,它访问供应商的UIDevice.CurrentDevice.IdentifierForVendor,并需要从应用程序的钥匙链读取一些数据。 在Xamarin应用程序中调用供应商的UIDevice.Current
UIDevice.CurrentDevice.IdentifierForVendor
,并需要从应用程序的钥匙链读取一些数据。
在Xamarin应用程序中调用供应商的UIDevice.CurrentDevice.IdentifierForVendor
时,我得到的GUID与在旧ObjectiveC应用程序中得到的不同。
我也无法访问旧应用程序在钥匙链中存储的值。
这是我用来获取供应商标识的代码:
UIDevice.CurrentDevice.IdentifierForVendor.AsString()
这是我用来访问钥匙链的代码:
SecStatusCode code;
// Query the record.
SecRecord queryRec = new SecRecord ( SecKind.GenericPassword ) { Service = serviceId, Account = username, Synchronizable = synchronizable };
queryRec = SecKeyChain.QueryAsRecord ( queryRec, out code );
// If found, try to get password.
if ( code == SecStatusCode.Success && queryRec != null && queryRec.Generic != null )
{
// Decode from UTF8.
return NSString.FromData ( queryRec.Generic, NSStringEncoding.UTF8 );
}
```