Sponsor Link
環境&対象
- macOS 14.1
- Xcode 15.0.1
- iOS 17
- Swift 5.9
この記事 作成時点では、UserDefaults を 使用する理由としては、CA92.1 しか用意されていませんでしたが、その後 増やされています。
詳細はドキュメントを確認してください。
Apple ドキュメント
この記事は、以下の解説から UserDefaults 関連を抜粋したものです。
Apple のドキュメントは、こちら。
UserDefaults 以外にも API 使用時に privacy manifest file への記載が必要な API は多くありますので、別途確認してください。
Privacy manifest file とは
まず “Privacy manifest file” を説明します。
Apple のドキュメントは、こちら。
実際には、”PrivacyInfo.xcprivacy” という名称のファイルです。
このファイルは、アプリや SDK 毎に存在することができます。
それぞれが、特定の API にアクセスしてデータを使用する時に どのような理由で 使用するを記述することになります。
作り方
作り方は簡単です。
Xcode 上で “File” – “New File” として、”Resource section”の “App Privacy” を選択して “Next” を押下するだけです。
ファイル名を変更してはいけません。
作成されたファイルを確認するとわかりますが、フォーマットとしては プロパティーリスト と同じ DTD を使用しています。
UserDefaults へのアクセス宣言
アプリが UserDefaults へアクセスする前提で、必要な宣言を追加していきます。
Apple のドキュメントは、こちら。
以降の説明では要素を 名称A/ 名称B という形で記述していきます。
名称A は、PropertyList Editor 上で表示される文字列で、名称Bは、実際のファイルに記述される文字列です。
プロパティエディタで編集するときは、名称A を、直接ファイルを編集するときは、名称B を使用してください。
上記ドキュメントの User defaults APIs の箇所の説明に従って記述します。
つまり、以下のように Privacy manifest file に追加します
Key: Privacy Accessed API Types / NSPrivacyAccessedAPIType
Value: User Defaults / NSPrivacyAccessedAPICategoryUserDefaults
“Privacy Accessed API Types / NSPrivacyAccessedAPIType” は、辞書型データを配列として持ちます。辞書型の配列要素としては、API の使用を宣言するデータです。
UserDefaults の使用を宣言するために以下を 追加します。
Key: Privacy Accessed API Reasons / NSPrivacyAccessedAPITypeReasons
Value: CA92.1: Access info from same app, per documentation / CA92.1
HealthKit 等へのリソースアクセスについての宣言では、開発者が文言を決める必要がありますが、UserDefaults では、上記の理由のみが選択可能です。つまり、自由に文章を記述することはできません。
なお、上記の宣言では、以下のケースは、カバーしていない ということに注意してください。
・別のアプリやシステム機能が書き込んだ情報を読むこと
・別のアプリがアクセスできるように情報を書き込むこと
設定すると、以下のように見えることになります。
まとめ
UserDefaults を使用してデータを保持する時に必要な宣言について説明しました。
- UserDefaults を使うときは宣言する必要がある
- 宣言は、PrivacyInfo.xcprivacy に記述する
- Reason としては、CA92.1 が指定できる(それ以外はできない)
- 2024春以降は、宣言せずに UserDefaults を使うと AppStore Review で Reject される
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
SwiftUI おすすめ本
SwiftUI を理解するには、以下の本がおすすめです。
SwiftUI ViewMatery
SwiftUI で開発していくときに、ViewやLayoutのための適切なmodifierを探すのが大変です。
英語での説明になってしまいますが、以下の”SwiftUI Views Mastery Bundle”という本がビジュアル的に確認して探せるので、便利です。
英語ではありますが、1ページに コードと画面が並んでいるので、非常にわかりやすいです。
View に適用できる modifier もわかりやすく説明されているので、ビューの理解だけではなく、どのような装飾ができるかも簡単にわかります。
超便利です
販売元のページは、こちらです。
SwiftUI 徹底入門
# SwiftUI は、毎年大きく改善されていますので、少し古くなってしまいましたが、いまでも 定番本です。
Swift学習におすすめの本
詳解Swift
Swift の学習には、詳解 Swift という書籍が、おすすめです。
著者は、Swift の初期から書籍を出していますし、Swift の前に主力言語だった Objective-C という言語についても同様の書籍を出しています。
最新版を購入するのがおすすめです。
現時点では、上記の Swift 5 に対応した第5版が最新版です
Sponsor Link