お菓子検索アプリ:iOS10でのATS設定について
アプリ申請時はATS設定に注意
本書では、ATS機能を無効化することで、httpサイトへの通信を可能にしました。シミュレータなどの開発環境では問題なく通信ができます。ですが、アプリ申請時の際には、注意が必要です。
iOS10でのアプリ申請時には、より厳密に設定を行なう必要があります。ATS機能を有効化して、基本はhttpsでの通信とします。そして、httpで通信したいドメインのみ個別で登録します。
ATS(App Transport Security)の設定を変更
ATS機能が無効化されているので、有効にします
◎「Allow Arbitrary Loads」の削除
既に設定済みの場合は、「Allow Arbitrary Loads」が「YES」となっています。このキーを削除するとデフォルト値(NO)となり、ATS機能が有効になります。
- ①[MyOkashi]プロジェクトを選択します。
- ②[project and targets list]ボタンをクリックして、[PROJECT]と[TARGETS]を表示します。
- ③[TARGETS]で[MyOkashi]を選択します。
- ④[Info]をクリックして、プロパティリストを表示します。
- ⑤「Allow Arbitrary Loads」のマイナスボタンをクリックして、行を削除します。
http通信を行なうドメインを登録します
◎「App Transport Security Settings」へ追加
- ①「App Transport Security Settings」の前の三角マークをクリックして、▼に変更します。
- ②プラスマークをクリックして、新しくKeyを追加します。
◎「Exception Domains」を入力
- ①追加したKeyに「Exception Domains」と入力していきます。数文字を入力すると候補から選択できます。「Exception Domains」は、「例外のドメイン」示すKeyになります。
◎例外のドメインを設定
- ①「Exception Domains」の前の三角マークをクリックして、▼に変更します。
- ②プラスマークをクリックして、新しくKeyを追加します。
- ③追加したKeyに例外のドメインを設定します。「www.sysbird.jp」と入力します。お菓子検索アプリで、「http://www.sysbird.jp〜」ドメインへアクセスしてデータを取得していますので、ここで例外のドメインとして設定しています。
◎[Type](データ型)を「Dictionary」へ変更
- ①「www.sysbird.jp」の[Type](データ型)を「String」から「Dictionary」へ変更します。
◎「www.sysbird.jp」へKeyを追加
- ①「www.sysbird.jp」の前の三角マークをクリックして、▼に変更します。
- ②プラスマークをクリックして、新しくKeyを追加します。
- ③追加したKeyに「NSTemporaryExceptionAllowsInsecureHTTPLoads」と入力していきます。これは入力候補が表示されないため、正確に入力していきます。「NSTemporaryExceptionAllowsInsecureHTTPLoads」は、「一時的な例外として、安全ではないHTTPロードを許可します」という意味のKeyです。
◎[Type]と[Value]の設定
- ①追加したKey「NSTemporaryExceptionAllowsInsecureHTTPLoads」の[Type]を「Boolean」に変更します。
- ②そして、[Value](値)を「YES」にします。これで、「www.sysbird.jp」ドメインがhttpでも通信できるようになりました。
以上で、プロパティリストの設定が完了しました。
シミュレータと実機で動作を確認します
◎シミュレータと実機での動作確認
シミュレータを起動して、お菓子の検索を行いデータが取得されているのを確認します。また、一覧のお菓子をタップして、お菓子紹介のWebページが表示されることも確認します。
参考ページ
Cocoa Keys | Describes the keys for a bundle's Info.plist file. | Apple Developer