web-dev-qa-db-ja.com

アプリケーションのアンインストール後もiphoneキーチェーンアイテムは保持されますか?

私はidandersenの scifihifi-iphone キーチェーンのコードで遊んでいて、次の動作に遭遇しました-私は、たとえば、

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

次に、デバイスからテストアプリケーションを削除して再度インストールします-以前に設定したパスワードがキーチェーンに残っているようです...
それは予想される動作ですか?そして、私が設定したパスワードがアプリケーションで確実に削除されるようにする方法はありますか?

40
Vladimir

はい、これは予想される正しい動作です。

一部のキーチェーンアイテムは、あなたが制御する(同じキーチェーンアイテムアクセスグループを共有する)他のアプリと共有される場合があります。

アプリが削除されたときは、情報をそのままにしておきます。アプリの削除時にキーチェーンアイテムを削除するコールバックまたはメソッドはありません。

32
Sven

編集:最終的に私の回答に記載されている動作を元に戻したので、誰もがそのバージョンの範囲から離れるまで、これはもう起こらない。

残念ながら、これはもう当てはまりません。 iOS 10.3以降変更されています。

これは、ユーザーのプライバシーを保護するためのiOS 10.3の意図的な変更です。ユーザーを特定できる情報は、それを作成したアプリが削除された後にデバイスに残してはいけません。

アプリが削除されてもアプリによって作成されたキーチェーンアイテムが存続することは、API契約の一部ではありませんでした。これは常に実装の詳細でした。

こちらを参照 を参照してください。

4
ForceMagic