【Xcode9】The app's Info.plist must contain both NSLocationAlwaysAndWhenInUseUsageDescription and NSLocationWhenInUseUsageDescription keys ~~ というエラーが出た時の対処方法【iOS11】
CoreLocationによる位置情報を取得を使用したアプリ開発をし、ビルドすると以下のようなエラーが出る場合があります。
This app has attempted to access privacy-sensitive data without a usage description.
The app's Info.plist must contain both NSLocationAlwaysAndWhenInUseUsageDescription and NSLocationWhenInUseUsageDescription keys with string values explaining to the user how the app uses this data
このエラーが出た時は、アプリで位置情報の使用許諾アラートが出た時に記載される説明文をplistで設定しておかなければいけません。
位置情報なのでNSLocationAlwaysAndWhenInUseUsageDescription, NSLocationWhenInUseUsageDescription, NSLocationAlwaysUsageDescriptionの3種類の設定をしておきましょう。
私はこのように「位置情報の記録に必要です」と記述しています。
モーションアクティビティの他にも、カメラの使用許可、マイクの使用許可など様ざまな時に上記のような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 |