Sponsor Link
環境&対象
- macOS Monterery beta 5
- Xcode 13 beta5
- iOS 15
HealthKit
HealthKit のデータを読み込むアプリ、HealthKit にデータを書き込むアプリ は、ユーザーに許諾を得なければいけないのですが、同時に、Info.plist(Custom iOS Target Properties) に、特定のキーを追加し、その目的を記述しつつ、アプリが HealthKit を利用することを宣言しないといけません。
なお、キーを追加するだけでは、ユーザー許諾を得るためのスクリーンは表示されませんので、HealthKit の API を使用して、ユーザーに許諾をリクエストしなければいけません。
[iOS][HealthKit] HealthKit のセットアップ async/await 対応板
Xcode13 で作成されたプロジェクトでは、Info.plist が見えません。
[Xcode] Xcode13 で作成した新規プロジェクトに Info.plist がない件
関連する Property List Key
以下のキーが関連するキーです。カッコ内は、Apple のドキュメントで Key として使われている文字列です。
Apple のドキュメントは、こちら。
- Privacy – Health Share Usage Description (NSHealthShareUsageDescription)
- Privacy – Health Update Usage Description (NSHealthUpdateUsageDescription)
- Privacy – Health Records Usage Description (NSHealthUpdateUsageDescription)
- NSHealthRequiredReadAuthorizationTypeIdentifiers
Privacy – Health Share Usage Description (NSHealthShareUsageDescription)
HealthKit のデータを読み込むアプリケーションは、このキーの追加が必要です。
Apple のドキュメントは、こちら。
なぜそう記憶しているかは不明なのですが、以前はこのキーで 自アプリからのデータ書き込み だけではなく、自アプリの書き込んだデータ読み込みもできた気がします。
実際に動作していたアプリがうまく動作しなくなって調べたのが、この記事の発端です。
Privacy – Health Update Usage Description (NSHealthUpdateUsageDescription)
HealthKit にデータを書き込むアプリケーションは、このキーの追加が必要です。
Apple のドキュメントは、こちら。
キーの名前である Update からは、更新のみかと考えるかもしれませんが、ドキュメントでは、”save” するなら必要であると 明確に説明されてます。
Privacy – Health Records Usage Description (NSHealthClinicalHealthRecordsShareUsageDescription)
HealthkKit から医療記録を読み出すアプリケーションは、このキーの追加が必要です。
# 自分のアプリケーションで指定したことはありません。
NSHealthRequiredReadAuthorizationTypeIdentifiers
HealthKit から医療記録を読み出すアプリケーションでは、具体的にどの情報を読み出すかの宣言が必要でそのためのキーです。
# こちらも自アプリで使用したことがありません。
まとめ:HealthKit を使うアプリで設定する Property List Key
- HealthKit から読み込むなら:Privacy – Health Share Usage Description
- HealthKit へ 書き込むなら:Privacy – Health Update Usage Description
- HealthKit の医療データを読み込むなら:Privacy – Health Records Usage Description
- キーを設定するだけなく、requestAuthorization でユーザーに許諾を取る必要があります
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link