2018年3月28日水曜日

我、アクセス権を要求す

SwiftにてMediaPlayer関連の処理を実装している際、以下のようなエラーが👊
[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. 
The app's Info.plist must contain an NSAppleMusicUsageDescription key with a string value explaining to the user how the app uses this data.

毎回載せてるので一応環境も。
  • Xcode 8.3.3
  • Swift 3.1
まぁ意味は読んだままなんですが、ユーザのプライバシー情報見ようとしてるな?使用目的をInfo.plistに書けよな!とのこと🙇
天下のApple様、敵いませんわ。

ということでInfo.plistを開いて+ボタンを押して追加しましょう。
キー名にPrivacy - XXXというのがあるのでコードに応じて使用目的をValueに書きましょう。これがそのままアプリが該当の情報を見ようとした時にアラートとして表示されます。
調べた情報を見ると、Valueが空文字でも起動可、XcodeのValidateも可、らしいですが、アプリ申請時にリジェクトされるそうです。
なのでやましい理由があるわけでもないので、素直に書いておきましょう。

また、このアラートの文言を多言語対応したい場合、Info.plistにはデフォルト言語にて記述。
他の言語についてはおなじみのInfoPlist.stringsにて多言語対応しましょう!
InfoPlist.stringsについては一応この記事を参考に。
[iOS] アプリ名を国ごと変更したい場合

Baseにはデフォルト言語を記述し、Japanaseには日本語にて記述します。
ここはシステム的な文言になるので、ふざけない方が良い気がします(例えば最高の時間を提供しますとかクールなサウンドを楽しみますとか…書いてて寒いですが😅)
[ Base ]
"NSAppleMusicUsageDescription" = "Play Music";

[ Japanese ]
"NSAppleMusicUsageDescription" = "音楽を再生します";

最後にInfo.plist上のキー名と内部のキー名、簡単な説明の一覧を下記しておきます!ご参考までに🙌
  • Privacy - Bluetooth Peripheral Usage Description
    • NSBluetoothPeripheralUsageDescription
    • Blootooth
  • Privacy - Calendars Usage Description
    • NSCalendarsUsageDescription
    • カレンダー
  • Privacy - Camera Usage Description
    • NSCameraUsageDescription
    • カメラ
  • Privacy - Contacts Usage Description
    • NSContactsUsageDescription
    • 連絡先
  • Privacy - Health Share Usage Description
    • NSHealthShareUsageDescription
    • ヘルス
  • Privacy - Health Update Usage Description
    • NSHealthUpdateUsageDescription
    • ヘルスの更新
  • Privacy - HomeKit Usage Description
    • NSHomeKitUsageDescription
    • ホームキット
  • Privacy - Location Always Usage Description
    • NSLocationAlwaysUsageDescription
    • 位置情報 (常に許可)
  • Privacy - Location When In Use Usage Description
    • NSLocationWhenInUseUsageDescription
    • 位置情報 (使用中のみ許可)
  • Privacy - Microphone Usage Description
    • NSMicrophoneUsageDescription
    • マイク
  • Privacy - Motion Usage Description
    • NSMotionUsageDescription
    • 加速度センサ
  • Privacy - Music Usage Description
    • NSAppleMusicUsageDescription
    • ミュージック
  • Privacy - Photo Library Usage Description
    • NSPhotoLibraryUsageDescription
    • 写真ライブラリ
  • Privacy - Reminders Usage Description
    • NSRemindersUsageDescription
    • リマインダー
  • Privacy - Siri Usage Description
    • NSSiriUsageDescription
    • Siri
  • Privacy - Speech Recognition Usage Description
    • NSSpeechRecognitionUsageDescription
    • 音声認識

0 件のコメント:

コメントを投稿