IX. Persistence of data
データを保存する際は Apple のガイドラインに従う
GitHub で編集するApple のガイドラインに従ったデータや設定の保存は、アプリのライフサイクル、特に iCloud の同期、新しい iPhone へのアップグレード、バックアップからの復元に不可欠です。
必ず Apple 公式の iOS Data Storage Guidelines に従ってください。
Documents
:ユーザーが生成したコンテンツ用、バックアップされるCaches
:再生成可能なデータ用tmp
:一時的なファイル用- ファイルの
do not back up
属性を利用する
機密なユーザー情報(パスワードやセッションなど)をこれらのディレクトリに保存しないでください。代わりに Keychain API を使います。
Keychain API を使用すると、データをデバイスに保存する方法を制御できます。 さまざまな属性 がアプリのライフサイクルにどのように影響するかをよく理解していることを確認してください。
あなた自身に問いかけるべき見落としがちな質問:ユーザーが新しい iOS 端末にアップグレードしたときに、データ(ログインセッションなど)も移行する必要がありますか?
kSecAttrAccessibleWhenUnlockedThisDeviceOnly
を使うとデータは iCloud や iTunes backup には含まれず、デバイスをアップグレードしたときにデータを失います。