質問: iPhoneアプリでアドレス帳へアクセスする場合、iOS11にバージョンアップするとアプリが落ちてしまうため、Info.plistのプライバシー設定にアドレス帳へのアクセスを追加しました。 →Info.plistに「Privacy - Contacts Usage Description」とキーを設定。 (情報元:http://galakutaapp.blogspot.jp/2016/09/plist.html) 上記修正後、iOS11でアプリからアドレス帳へアクセスすると、ダイアログ「アプリが連絡先へのアクセスを求めています」が表示され、アプリは落ちないようになりました。 →iPhoneの「設定」-「プライバシー」-「連絡先」にアプリが追加される。 【質問内容】 iOS10以下ではInfo.plist修正前でもアプリは落ちなかったのですが、Info.plist修正後にiOS10以下でアドレス帳へアクセスしてもダイアログが表示されず、iPhoneの「設定」-「プライバシー」-「連絡先」にもアプリが追加されておりません。 通常iOSバージョンに関わらず、ダイアログが表示され、iPhoneの「設定」-「プライバシー」-「連絡先」にもアプリが追加されるはずだと思うのですが、原因は何かお判りでしょうか?
回答: このようなユーザーに許可を取る必要がある機能は、大抵 ・許可をユーザーに確認したかどうかを取得するAPI ・許可をユーザーに取るAPI などが用意されています(アドレス帳は私はやったことがありませんが、写真やカメラ、位置情報なども同じような作りになっています)。 自動的に呼ばれる・呼ばれないケースの原因は判りませんが、 手動で許可を求めるアラートを表示させることで目的は達成できるのではないでしょうか? こちらの記事の3が参考になると思います。 https://qiita.com/kato-i-l/items/0d79e8dcbc15541a5b0f