初投稿です。
Health Kitで睡眠時間を習得する機能を実装していた際にエラーに見舞われて散々な目に遭ったので、備忘録を残しておきます。
はじめに + Health Kitの導入方法
本記事はPPT Developers' Blog様のHealthKitアプリを作る(その1)を参考に作成しています。
詳細はこちらを参照にしてください。
要は、
1.プロジェクトを作る
2.Capabilities→HealthKitをオンにする
3.General→Linked Frameworks and Librariesに「HealthKit.framework」と>「HealthKitUI.framework」を設定
4.Info.plistで「Privacy - Health Update Usage Description」と「Privacy - Health Share Usage Description」を追加
すれば導入ができます。
データにアクセスする許可云々は参考記事をご確認ください。
環境
- MacOS Mojave Ver. 10.14.5
- Xcode Ver. 10.2.1
#エラーが出てしまった!
4.次に体重データを取得してみる
までコードを書いてみていざ実機で起動じゃい!と思ったその時こんなエラーが
'NSInvalidArgumentException', reason: 'NSHealthUpdateUsageDescription must be set in the app's Info.plist in order to request write authorization for the following types: HKQuantityTypeIdentifierBodyMass'
よくわからずGoogle先生に聞いたところstackoverflowにこのような記事が
If you already added NSHealthShareUsageDescription but still get the exception.
It may be due to that the description is too short.
Make sure the description is longer than 12 characters for all locales.
なんとエラーの正体は許可を求めるのに必要な理由の記述が短かったということでした。
ちなみにこのエラーがでた時には[please arrow]と書いていました。
12文字より短い文章では理由が足りん。さすがAppleさん、見極めの基準がユニークです。
以上、HealthKit導入の際に悩まされたエラーとその解決策でした。
簡単なエラーでしたがどなたかの役に立ててば幸いです。