シミュレータで落ちる!
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 件のコメント:
コメントを投稿