我確實瞭解框架KeychainAccess中的Access with Touch ID的kSecAccessControlTouchIDAny
是如何工作的,但我無法弄清楚如何在iOS 11中使用面部識別號進行此操作。我無法'找到解決它的任何文檔(也許文檔還沒有出來?)。面孔ID寫入和讀取鑰匙鏈的值
所以我正在尋找到stackoverflow和問:如何寫的價值擔保與面部鑰匙鑰匙鏈和如何將它們複製回來?
一個最小的例子會很好。
我確實瞭解框架KeychainAccess中的Access with Touch ID的kSecAccessControlTouchIDAny
是如何工作的,但我無法弄清楚如何在iOS 11中使用面部識別號進行此操作。我無法'找到解決它的任何文檔(也許文檔還沒有出來?)。面孔ID寫入和讀取鑰匙鏈的值
所以我正在尋找到stackoverflow和問:如何寫的價值擔保與面部鑰匙鑰匙鏈和如何將它們複製回來?
一個最小的例子會很好。
這似乎現在在Xcode 9.1工作(因爲測試版)。
可測試與這裏的例子:
https://developer.apple.com/library/content/samplecode/KeychainTouchID/Introduction/Intro.html
儘管這個例子中並沒有被用於面部識別更新,它似乎對存儲由面部識別保護的鑰匙串項工作。
如上所述,這在Xcode 9.0 GM中不起作用。
如果將密鑰NSFaceIDUsageDescription添加到您的info.plist,示例代碼可以正常使用Face ID。然後,您將不會收到警告提醒「應用程序尚未更新面部識別號」。 –
看起來Apple已經將Face ID支持添加到本地驗證API,但尚未添加Keychain ACL。
我打算做的是使用本地身份驗證觸發Face ID提示,如果成功,直接訪問Keychain。沒有我們用於Touch ID的正確的KeyChain ACL API那麼安全,但這是迄今爲止我提出的最佳解決方案。
https://developer.apple.com/documentation/localauthentication/labiometrytype?changes=latest_minor
Apple提供了一個[非鑰匙串示例](https://developer.apple.com/documentation/localauthentication/),但我想鑰匙串將是相同的; FaceID將在iPhone X設備上自動使用,其他設備上的TouchId會自動使用。沒有特定的代碼要求。 – Paulw11
@ Paulw11我見過這個例子。我真的很想知道它是否可以用在盒子上,因爲這種情況叫做'... TouchIDAny'。它可能只是一個由操作系統處理的'1 << 1'值。 – BennX
我想象會。 API是在Face ID存在之前創建的,因此它不能通過名稱引用Face ID。我預計最終可能會有一個引用「BiometricId」的更新,但由於FaceID替換AppleIDay的TouchID並解鎖設備,因此可以合理地假設它將無縫地替換其他應用程序中的TouchID – Paulw11