1
我已經爲此創建了一個新問題,因爲這更關聯到Xamarin。當我偶然發現StackOverflow中的這個question時,我正在尋找一種在iOS中唯一標識設備的方法。我花了一段時間才弄清楚如何在Keychain中添加任何東西,而我偶然發現了這個question。Xamarin iOS爲KeyChain增加價值,可以通過設備上的所有應用程序訪問
經過所有的絆腳石,我想出了this一段代碼來生成唯一的令牌。
var s = new SecRecord(SecKind.GenericPassword)
{
AccessGroup = "kSecAttrAccessGroupToken",
ValueData = NSData.FromString(value),
Generic = NSData.FromString(key)
};
SecKeyChain.Add(s);
現在的問題是,即使我將這個條目添加到鑰匙串,我無法找到它。我也有興趣知道我是否正確使用kSecAttrAccessGroupToken。
我Enlistments.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>
感謝您的回覆。你有沒有看過我發佈的Gist?我對它做了一些修改,現在就開始工作。所以當我卸載應用程序並重新安裝時,我仍然能夠獲得Guid。但是現在你說了這些,我是否在做一些反對蘋果政策的事情? –
@MadhavShenoy 1)你在iOS 10.2或更低版本上做這個? 2)你在物理設備上測試嗎? (模擬器不遵循運行時間規則) – SushiHangover
好的,讓我測試一下這個設備。所以這意味着根本無法在iOS上唯一標識設備........ –