2016年9月19日月曜日

プライバシー設定をplistにしとかないと落ちる

シミュレータで落ちる!

iOS10、Xcode8になってから、プライバシーに関する機能を使う際に、Info.plistにあらかじめ宣言(みたいなこと)しとかないと、シミュレータで落ちてしまうようになった。

たとえばフォトライブラリにアクセスするようなAPIを使ったら、こんなん出て落ちた。
[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 NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
アプリがクラッシュしたのは、プライバシーに敏感なデータにアクセスしようとしたためです。アプリのInfo.plistは、ユーザーにアプリがどのようにこのデータを使うかについて説明している文字列値で、NSPhotoLibraryUsageDescriptionキーを含まなければなりません。
だそうです。

 落ちないようにしましょう

アプリ名-Info.plistにPrivacy - から始まる項目を追加する(探すとメニューで出てくる)。
そこに、フォトライブラリにアクセスする際に表示させるAlertのメッセージを書き込んでおしまい。

そうすると最初のアクセス時に以下のように出て、無事クラッシュせずにアクセスできるようになった。
かあんたん(≧∇≦)
でも、もともとフォトライブラリにアクセスするような場合って、iOS側が確認のアラートを表示してくれてたよね。
メッセージ部分を入力しなければ、デフォルトでいつものメッセージを表示してくれるんだけど、メッセージがないと審査の段階で自動的にアップロードしたビルドが拒否されちゃう
一応英語で書いたけど、他言語対応はどうやるのかね?
しかしめんどくさくなったねぇ。

Info.plistに設定が必要になったらしい機能の一覧はこちらのサイト

Info.plistの候補からまとめてみた(iOS10、Xcode8時点)
  • Privacy - Bluetooth Peripheral Usage Description
    • Bluetoothを使うとき
  • Privacy - Calendars Usage Description
    • カレンダーにアクセスするとき
  • Privacy - Camera Usage Description
    • カメラを使うとき
  • Privacy - Contacts Usage Description
    • 住所録を使うとき
  • Privacy - Health Share Usage Description
    • ヘルスの機能を使うとき
  • Privacy - Health Update Usage Description
    • ヘルスのアップデートを使うとき
  • Privacy - HomeKit Usage Description
    • ホームキットを使うとき
  • Privacy - Location Always Usage Description
    • 位置情報をアプリ裏でも常に使うとき
  • Privacy - Location Usage Description
    • 位置情報を使うとき
  • Privacy - Location When In Use Usage Description
    • 場所に着いた時点(?)の位置情報を使うとき
  • Privacy - Media Library Usage Description
    • メディアライブラリを使うとき
  • Privacy - Microphone Usage Description
    • マイクを使うとき
  • Privacy - Motion Usage Description
    • モーション機能を使うとき
  • Privacy - Music Usage Description
    • ミュージックにアクセスするとき
  • Privacy - Photo Library Usage Description
    • 画像ライブラリにアクセスするとき
  • Privacy - Reminders Usage Description
    • リマインダーにアクセスするとき
  • Privacy - Siri Usage Description
    • Siriを使うとき
  • Privacy - Speech Recognition Usage Description
    • 音声認識機能を使うとき
  • Privacy - TV Provider Usage Description
    • TVプロバイダ機能(そんなのあるの?)を使うとき
  • Privacy - Video Subscriber Account Usage Description
    • ビデオ購読機能を使うとき

0 件のコメント:

コメントを投稿