【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 |