ios - 钥匙串(keychain)集 - NoSuchAttribute - 为什么?

标签 ios xamarin xamarin.ios

这是我的代码:

static void SetA(byte[] b)
{
    var result = SecKeyChain.Add(new SecRecord(SecKind.Key) { Generic = "test", ValueData = NSData.FromArray(b) });
    Debug.WriteLine(result);
}

结果是:

NoSuchAttribute

  • 是因为我正在调试并且当我发布它时它会起作用吗?
  • 是因为我需要向 info.plist 添加一些内容吗?
  • 是因为我需要在配置中指定一些内容吗 个人资料?
  • 或者是因为我遗漏了代码中的某些步骤?
  • ...

这是我第一次尝试使用 KeyChain,因此请不要低估(如“忽略”)我可能犯的任何简单错误。

最佳答案

我遇到了完全相同的错误。我正在关注这里的官方样本 https://github.com/xamarin/ios-samples/tree/master/Keychain .

我调试了一下,发现错误NoSuchAttribute来自Generic属性。在 official Apple documentation kSecAttrGeneric属性列在“密码属性”下。所以我假设 xamarin 示例是正确的,因为它使用 SecKind.GenericPassword .

替换Generic通过Label或其他东西来识别您的钥匙串(keychain)记录。

使用您的代码

static void SetA(byte[] b)
{
    var result = SecKeyChain.Add(new SecRecord(SecKind.Key) { 
        Label = "test", 
        ValueData = NSData.FromArray(b) 
    });
    Debug.WriteLine(result);
}

关于ios - 钥匙串(keychain)集 - NoSuchAttribute - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58221460/

相关文章:

c# - 如何在VS2019(版本16.8.0)中将 "Mobile App(Xamarin.Forms)"项目定位到.net 5.0?

ios - 未为自定义 UITableViewCell 调用 GetHeightForRow

objective-c - iOS和Airprint-切碎的打印PDF

ios - 如何通过实例调用类的静态函数

ios - 如何将多个委托(delegate)添加到我的 View Controller ?

ios - JSON 和 iPhone TableView

xamarin - 程序集生成失败 - 没有强名称

ios - 如何快速更改 UIBarButtonItem 标题大小

ios - 当我上下滚动 UICollectionView 时, View 高度约束设置不正确

c# - 如何从 UITableView RowSelect Event Monotouch 访问主 UIViewController?