読者です 読者をやめる 読者になる 読者になる

iOS 10.3 から、アンインストールすると Keychain が削除される

iOS

nextstep.fm by nextstep.fm on iTunesiOS 10.3 について話されていて、どうやらアプリをアンインストールすると Keychain が削除されるらしい。
これはバグでそうなっている可能性もあるらしく、修正されるかもしれない。
→ 仕様とのこと。

forums.developer.apple.com

動作

  • いままで
    • アプリをアンインストールしても Keychain のログイン情報は残ったまま。
    • つまり再インストールすると前回のログイン情報を引き継ぐ。
      • (再インストール後の初回起動時に Keychain を削除することで引き継がせないアプリもある)
  • これから
    • アプリをアンインストールすると Keychain も消える。
    • 再インストールしても前回のログイン情報を引き継がなくなったため、常に初回起動と同じ動作になる
    • ただし、 keychain が他のアプリと共有されている場合、他のアプリも消さないと keychain は消えない。

バグの可能性

Keychain の変更は iOS 10.3 の仕様に記載されている事項ではなく、今後の 10.3 正式リリース時までに削除される可能性があると話されていた。
まあ beta 版での話なので、杞憂に終わればそれで良い。

コメントで教えていただいた、これは仕様とのこと。

https://forums.developer.apple.com/thread/72271 このスレッドに Apple スタッフからの回答がありましたよ。

This is an intentional change in iOS 10.3 to protect user privacy. Information that can identify a user should not be left on the device after the app that created it has been removed. It has never been a part of the API contract that keychain items created by an app would survive when the app is removed. This has always been an implementation detail. ユーザーのプライバシーを守るための意図的な変更とのことです。

対策

開発者的に何かすることはおそらくないと思う、常に初回起動と同じ挙動になるだけ。(Analytics のトラッキングが正常に動作しない可能性はある?)

ただ、「再インストール」というのを特定するために Keychain を使う必要があったが、それができなくなる。
アプリの再インストールを検出する - Qiita

一応 iOS10.3 以上とそれ以下で実装を気をつけたほうがよさそう。

参考

iOS 10.3 Beta 2 autodeletes keychain items afte... | Apple Developer Forums
iphone - iOS 10.3 beta 3 doesn’t persist data of KeychainItem - Stack Overflow