代码之家  ›  专栏  ›  技术社区  ›  Madhav Shenoy

Xamarin iOS为设备上的所有应用程序都可以访问的钥匙链增加了价值

  •  1
  • Madhav Shenoy  · 技术社区  · 7 年前

    我为此提出了一个新问题,因为这与Xamarin有更多的联系。我正在寻找一种在iOS中唯一识别设备的方法,突然发现了这一点 question question .

    this 用于生成唯一令牌的代码段。

    var s = new SecRecord(SecKind.GenericPassword)
                {
                    AccessGroup = "kSecAttrAccessGroupToken",
                    ValueData = NSData.FromString(value),
                    Generic = NSData.FromString(key)
                };
                SecKeyChain.Add(s);
    

    我的入伍。plist文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>keychain-access-groups</key>
        <array>
            <string>my app id</string>
            <string>kSecAttrAccessGroupToken</string>
        </array>
    </dict>
    </plist>
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   SushiHangover    7 年前

    kSecAttrAccessGroupToken 只能由CryptokenKit智能卡驱动程序写入。应用程序可以使用该属性查询钥匙链,以查找存储在特定智能卡上的项目。此属性不用于任何其他用途。

    10.3中有一个bug。x测试版,允许任何应用程序也写入它,但这已经被修补。

    https://forums.developer.apple.com/thread/72271