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

2019年8月29日

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