2010-09-08 98 views
37

我與idandersen的鑰匙串scifihifi-iphone代碼玩耍,遇到了以下行爲 - 我使用設置的密碼,說iphone keychain項目在應用程序卸載後仍然存在?

[SFHFKeychainUtils storeUsername:@"User" andPassword:@"123" 
        forServiceName:@"TestService" updateExisting:YES error:&error]; 

然後從設備中刪除測試應用程序,並重新安裝 - 所設定的密碼似乎仍然在鑰匙鏈...
它是預期的行爲?有沒有辦法確保我設置的密碼將被刪除與應用程序?

回答

30

是的,這是預期的和正確的行爲。

一些鑰匙串項目可能與您控制的其他應用程序(共享相同的鑰匙串項目訪問組)共享。

當你的應用程序被刪除時,你應該只保留信息。在刪除您的應用程序時,您沒有回撥或刪除鑰匙串項目的方法。

+2

因此,我不希望信息留在應用程序卸載後的鑰匙串可能意味着鑰匙串是存儲它的錯誤地方,對吧? – Vladimir 2010-09-09 21:34:02

+7

@Mihai Damian商品*可以*在應用程序之間共享,但不是默認情況下;你必須設置訪問組。 – James 2011-05-05 18:22:26

+0

它就像UIPasteboard是如何實現的。私有共享 – 2012-02-15 19:53:07

1

不幸的是,現在不是這樣了。從iOS 10.3開始已經改變了。

這是iOS 10.3中爲保護用戶隱私而進行的故意更改。可以識別用戶的信息不應該在創建它的應用程序被刪除後留在設備上。

它從來不是API合約的一部分,應用程序創建的鑰匙串項目 將在應用程序被移除時存活。這有 一直是一個實現細節。

查看reference here

相關問題