Xamarin iOS app中的UIDevice.CurrentDevice.IdentifierForVendor和keychain访问

时间:2015-08-31 18:51:11

标签: ios xamarin keychain

我们的旧应用程序是用ObjectiveC编写的。新的应用程序是一个Xamarin应用程序。两个应用程序都具有相同的包标识符。

从旧应用程序升级到新应用程序时遇到一些问题。 要升级,我从appstore安装旧应用程序,然后通过它从Xamarin Studio部署新应用程序。

当应用程序首次运行时,它会访问UIDevice.CurrentDevice.IdentifierForVendor并需要从应用程序的钥匙串中读取一些数据。 在Xamarin应用程序中调用UIDevice.CurrentDevice.IdentifierForVendor时,我获得的GUID与我在旧的ObjectiveC应用程序中获得的GUID不同。 我也无法访问钥匙串中旧应用程序存储的值。 这是我用来获取IdentifierForVendor的代码:

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 );
        }

```

0 个答案:

没有答案