What’s in Your iOS Image Cache?
気になったので調べてみた。
調査
条件は Fast App Switch(だったけ?)に対応していること。具体的にはInfo.plist に UIApplicationExitsOnSuspend が無いか、チェックが外れていること。
自分で開発したアプリだとオーガナイザを使って iPhone 上の該当アプリのディレクトリを接続している Macへごっそりダウンロードすることができる。
そこでアプリの開発版をXcodeから iPhoneへインストールして実行、適当な画面を表示させた後、ホームボタンを押して一時的に終了させる(これでバックグラウンドへ移行する)。
次にオーガナイザを開き、目的のアプリを見つけてダウンロードする。
ダンロードしたフォルダを開くと
あった。Library/Caches/Snapshots/(identifier)/UIApplicationAutomaticSnapshotDefault-Portrait.jpg という名前で保存されている。開くと確かにアプリ切り替え直前の画像だ。
アプリを完全に終了させるとこの画像は削除されるのが確認できた。
この画像は再びこのアプリに切り替わった時の初期表示(アニメーションなど)で使われるようだ。
考察
通常は問題にならないと思われるが、セキュリティ上もしくはプライバシー上これを厳しく(?)問題視する場合もあるかもしれない。元ネタのサイトでは UIApplicationDelegate の applicationDidEnterBackground: で残したくない情報を非表示にする方法が紹介されていた。またバックグラウンド非対応のアプリ(UIApplicationExitsOnSuspend=NO)だとスクリーンショットは作られない(らしい)。
参考まで。
Responses
Leave a Response