2010-09-08 1 views
37

Ich spiele mit scifihifi-iphone Code des idandersen für Schlüsselanhänger und kam über das folgende Verhalten - Ich habe das Passwort, sageiphone keychain Artikel persistieren nach der Deinstallation der Anwendung?

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

Dann Testanwendung von Gerät löschen und neu installieren - das zuvor eingestellte Passwort zu bleiben scheint in keychain ...
Ist es das erwartete Verhalten? Und gibt es eine Möglichkeit, sicherzustellen, dass das Passwort, das ich gesetzt habe, mit der Anwendung gelöscht wird?

Antwort

30

Ja, das ist das erwartete und korrekte Verhalten.

Einige Schlüsselbundelemente können mit anderen Apps geteilt werden, die Sie steuern (die dieselbe Schlüsselbundelementzugriffsgruppe verwenden).

Sie sollten die Informationen in Ruhe lassen, wenn Ihre App entfernt wird. Sie haben keine Rückruffunktion oder Methode zum Entfernen der Schlüsselbundelemente beim Löschen Ihrer App.

+2

Also die Tatsache, dass ich nicht will, dass Informationen in den Schlüsselbund nach App-Deinstallation bleiben, könnte bedeuten, dass Schlüsselbund ist einfach falsch, es zu speichern, richtig? – Vladimir

+7

@Mihai Damian Artikel * können * zwischen Apps geteilt werden, sind aber nicht standardmäßig; Sie müssen Zugriffsgruppen festlegen. – James

+0

Es ist wie UIPasteboard implementiert ist.Privat noch geteilt –

1

Leider ist dies nicht mehr der Fall. Es wurde seit iOS 10.3 geändert.

Dies ist eine absichtliche Änderung in iOS 10.3 zum Schutz der Privatsphäre der Benutzer. Informationen, die einen Benutzer identifizieren können, sollten nicht auf dem Gerät verbleiben, nachdem die App, mit der es erstellt wurde, entfernt wurde.

Es war noch nie ein Teil des API-Vertrags, dass Keychain-Elemente , die von einer App erstellt wurden, überleben würden, wenn die App entfernt wird. Dies hat immer ein Implementierungsdetail gewesen.

Siehe reference here.