2015-05-11 78 views
2

我無法使用共享鑰匙串在WatchKit和iPhone應用程序之間共享數據。當我試圖在鑰匙串包裝中使用kSecAttrAccessible作爲kSecAttrAccessibleAlways時,SecItemUpdate失敗。請幫助我正確使用鑰匙鏈包裝中的kSecAttrAccessible如何在WatchKit擴展程序和iPhone應用程序之間共享鑰匙串數據

+0

您是否按文檔中所述打開了鑰匙串共享? https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/FileProvider.html – mckeejm

+0

是的,我已經打開鑰匙串,但問題正在發生kSecAttrAccessible價值是默認設置爲kSecAttrAccessibleWhenUnlocked所以當iphone是鎖定值在蘋果手錶中不可用。 –

回答

4

你應該使用正確的輔助功能模式:

默認鑰匙串模式kSecAttrAccessibleWhenUnlockedkSecAttrAccessibleWhenUnlockedThisDeviceOnly而iPhone被鎖定不會讓你的應用程序的擴展訪問數據。

因此,在這種情況下使用kSecAttrAccessibleAfterFirstUnlockkSecAttrAccessibleAfterFirstUnlockThisDeviceOnly是合適的。即使iOS應用程序處於後臺,這也允許WatchKit擴展程序訪問鑰匙串。

舊的項目(與kSecAttrAccessibleWhenUnlocked)必須重新保存(讀取,刪除,保存與新的輔助功能模式)。

更多信息(包括代碼)可用here,herehere

+0

感謝Vomako。請你讓我知道我們如何讀取刪除保存與鑰匙圈包裝(目標c)中的新可訪問模式,因爲我試圖刪除並保存新的,但無法做到這一點,並得到-50 error.I已經嘗試並調試了2-3天的問題,但無法使其與蘋果手錶配合使用。 –

+0

試試這段代碼:https://www.secsign.com/tag/secure-cloud-sharing/ – vomako

+0

Vomako我通過代碼檢查,但仍然得到問題。請你讓我知道我可以如何改變keychainitemwrapper蘋果類爲kSecAttrAccessible。 –

相關問題