Help us understand the problem. What is going on with this article?

iOSの各種バックアップとKeychainの復元状況を検証

More than 3 years have passed since last update.

アプリからKeychainに保存したデータがバックアップされているのか確認したかったので総当たりで検証したメモです。
結果から言うと同一デバイス間か異なるデバイス間かで結果が変わります。

環境

デバイス

  • iPhone6+ (8.4.1)
  • iPhone5 (8.4.1)

リセット方法

  • すべてのコンテンツと設定を消去

同一デバイス間で検証

iPhone6+ -> iPhone6+

復元方法 Keychain
新しいiPhoneとして設定 データなし
iCloudバックアップから復元 復元されている
iTunesバックアップから復元 復元されている
暗号化されたiTunesバックアップから復元 復元されている

異なるデバイス間で検証

iPhone5 -> iPhone6+

復元方法 Keychain
iCloudバックアップから復元 データなし
iTunesバックアップから復元 データなし
暗号化されたiTunesバックアップから復元 復元されている

まとめ

  • 機種変だと異なる端末から復元されるパターンになるので注意した方が良い。例えばデータベースのアクセスキーをKeychainに保存しているアプリでアプリをバックアップに含めていた場合に、アプリ内のデータベースは復元されるけどKeychainに保存していたアクセスキーは復元されないパターンがあるのでそうなるとデータベースにアクセスできない状況が起きます。
  • 他に未検証なのはiOS9とiTunesで初期化してから復元がありますが、仮に挙動が変わってもKeychainが復元されない場合を想定していれば大丈夫そう。
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away