[iOS][HealthKit] HealthKit アクセスのための Property List Key まとめ

     
⌛️ < 1 min.
HealthKit を使ったアプリを開発する時に必要な Property List Key をまとめてみます

環境&対象

以下の環境で動作確認を行なっています。

  • 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 対応板

MEMO

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 のドキュメントは、こちら

MEMO

なぜそう記憶しているかは不明なのですが、以前はこのキーで 自アプリからのデータ書き込み だけではなく、自アプリの書き込んだデータ読み込みもできた気がします。

実際に動作していたアプリがうまく動作しなくなって調べたのが、この記事の発端です。

Privacy – Health Update Usage Description (NSHealthUpdateUsageDescription)

HealthKit にデータを書き込むアプリケーションは、このキーの追加が必要です。

Apple のドキュメントは、こちら

キーの名前である Update からは、更新のみかと考えるかもしれませんが、ドキュメントでは、”save” するなら必要であると 明確に説明されてます。

Privacy – Health Records Usage Description (NSHealthClinicalHealthRecordsShareUsageDescription)

HealthkKit から医療記録を読み出すアプリケーションは、このキーの追加が必要です。

# 自分のアプリケーションで指定したことはありません。

NSHealthRequiredReadAuthorizationTypeIdentifiers

HealthKit から医療記録を読み出すアプリケーションでは、具体的にどの情報を読み出すかの宣言が必要でそのためのキーです。

# こちらも自アプリで使用したことがありません。

まとめ:HealthKit を使うアプリで設定する Property List Key

HealthKit を使うアプリで設定する Property List Key
  • HealthKit から読み込むなら:Privacy – Health Share Usage Description
  • HealthKit へ 書き込むなら:Privacy – Health Update Usage Description
  • HealthKit の医療データを読み込むなら:Privacy – Health Records Usage Description
  • キーを設定するだけなく、requestAuthorization でユーザーに許諾を取る必要があります

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です