【Xcode9】The app’s Info.plist must contain an NSMotionUsageDescription key ~~ というエラーが出た時の対処方法【iOS11】

CoreMotionによるモーションアクティビティを使用したアプリ開発をし、ビルドすると以下のようなエラーが出る場合があります。

This app has crashed because it attempted to access privacy-sensitive data without a usage description. 

The app’s Info.plist must contain an NSMotionUsageDescription key with a string value explaining to the user how the app uses this data.

このエラーが出た時はplistにNSMotionUsageDescriptionをKeyとして追加し、モーションアクティビティの使用用途をこのアプリでどのようにするか記述しなければいけません。

 

私はこのように「歩数の計測に必要です」と記述しています。

こうすることでモーションアクティビティの使用許諾を得る際にでるアラートの説明文にplistで設定した任意の文字を出すことができます。

モーションアクティビティの他にも、カメラの使用許可、位置情報へのアクセス許可など様ざまな時に上記のようなplistの設定が必要です。覚えておきましょう!

その他の Information Property Key 一覧

対象となる操作対応するキー
メディアライブラリへのアクセスNSAppleMusicUsageDescription
Bluetooth インターフェースへのアクセスNSBluetoothPeripheralUsageDescription
カレンダーへのアクセスNSCalendarsUsageDescription
カメラへのアクセスNSCameraUsageDescription
連絡先へのアクセスNSContactsUsageDescription
ヘルスデータへのアクセスNSHealthShareUsageDescription
ヘルスデータの変更NSHealthUpdateUsageDescription
HomeKit の設定データへのアクセスNSHomeKitUsageDescription
位置情報へのアクセス (常に許可)NSLocationAlwaysUsageDescription
位置情報へのアクセス (使用中のみ許可)NSLocationWhenInUseUsageDescription
位置情報へのアクセス (使用中、常に、両方許可)NSLocationAlwaysAndWhenInUseUsageDescription
マイクへのアクセスNSMicrophoneUsageDescription
加速度計へのアクセスNSMotionUsageDescription
フォトライブラリへのアクセスNSPhotoLibraryUsageDescription
リマインダーへのアクセスNSRemindersUsageDescription
Siri へユーザーデータ送信NSSiriUsageDescription
Speech Recognition Server へのユーザーデータ送信NSSpeechRecognitionUsageDescription