お菓子検索アプリ:iOS10でのATS設定について

アプリ申請時はATS設定に注意

本書では、ATS機能を無効化することで、httpサイトへの通信を可能にしました。シミュレータなどの開発環境では問題なく通信ができます。ですが、アプリ申請時の際には、注意が必要です。

iOS10でのアプリ申請時には、より厳密に設定を行なう必要があります。ATS機能を有効化して、基本はhttpsでの通信とします。そして、httpで通信したいドメインのみ個別で登録します。

ATS(App Transport Security)の設定を変更

ATS機能が無効化されているので、有効にします

◎「Allow Arbitrary Loads」の削除
「Allow Arbitrary Loads」が「YES」となっています。このキーを削除

既に設定済みの場合は、「Allow Arbitrary Loads」が「YES」となっています。このキーを削除するとデフォルト値(NO)となり、ATS機能が有効になります。

  • ProjectNavigator[MyOkashi]プロジェクトを選択します。
  • projectAndTargetsListIcon[project and targets list]ボタンをクリックして、[PROJECT]と[TARGETS]を表示します。
  • ③[TARGETS]で[MyOkashi]を選択します。
  • ④[Info]をクリックして、プロパティリストを表示します。
  • ⑤「Allow Arbitrary Loads」のマイナスボタンをクリックして、行を削除します。

http通信を行なうドメインを登録します

◎「App Transport Security Settings」へ追加
「App Transport Security Settings」へ追加

  • ①「App Transport Security Settings」の前の三角マークをクリックして、▼に変更します。
  • ②プラスマークをクリックして、新しくKeyを追加します。

◎「Exception Domains」を入力
「Exception Domains」を選択

  • ①追加したKeyに「Exception Domains」と入力していきます。数文字を入力すると候補から選択できます。「Exception Domains」は、「例外のドメイン」示すKeyになります。

◎例外のドメインを設定
例外のドメインを設定

  • ①「Exception Domains」の前の三角マークをクリックして、▼に変更します。
  • ②プラスマークをクリックして、新しくKeyを追加します。
  • ③追加したKeyに例外のドメインを設定します。「www.sysbird.jp」と入力します。お菓子検索アプリで、「http://www.sysbird.jp〜」ドメインへアクセスしてデータを取得していますので、ここで例外のドメインとして設定しています。

◎[Type](データ型)を「Dictionary」へ変更
[Type](データ型)を「Dictionary」へ変更

  • ①「www.sysbird.jp」の[Type](データ型)を「String」から「Dictionary」へ変更します。

◎「www.sysbird.jp」へKeyを追加
「www.sysbird.jp」へKeyを追加

  • ①「www.sysbird.jp」の前の三角マークをクリックして、▼に変更します。
  • ②プラスマークをクリックして、新しくKeyを追加します。
  • ③追加したKeyに「NSTemporaryExceptionAllowsInsecureHTTPLoads」と入力していきます。これは入力候補が表示されないため、正確に入力していきます。「NSTemporaryExceptionAllowsInsecureHTTPLoads」は、「一時的な例外として、安全ではないHTTPロードを許可します」という意味のKeyです。

◎[Type]と[Value]の設定
[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