2017年2月28日火曜日

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

概要

iOS 開発中 http に通信するシーンが何度もありその度にタイトルのエラーに悩まされては設定していたので忘れないようにメモしておきます

環境

  • Xcode 7.3.1
  • iOS 9.3.1

Xcode の Info.plist に NSAppTransportSecurity の項目を追加する

Info.plist を開いて項目を設定していきます

1 - Information Property List の横のプラスボタンをクリックする

set_ats_in_infoplist_1.png

2 - 新しく追加された行に NSAppTransportSecurity を入力します

set_ats_in_infoplist_2.png

3 - 追加した NSAppTransportSecurity 配下に更に NSAllowsArbitraryLoads を追加します

set_ats_in_infoplist_3.png

まず追加した NSAppTransportSecurity という項目は勝手に「App Transport Security Settings」という名前に変わります
その左の三角ボタンを下向きにします
次にその状態で「App Transport Security Settings」の右にあるプラスボタンをクリックします
最後に入れ子として追加された項目に NSAllowsArbitraryLoads を入力します

入れ子として項目を追加した段階で「App Transport Security Settings」の Type は自動的に Dictionary に変わります

4 - Type を「Boolean」Value を「YES」に設定します

set_ats_in_infoplist_4.png

追加した NSAllowsArbitraryLoads という名前はまた勝手に「Allow Arbitrary Loads」という名前に変わります
気にせずその横にある Type と Value を変更すれば OK です

最後に

本当は http としてアクセスするドメインごとに管理したほうがセキュリティ的にいいのですが、どうしても不特定多数のドメインにアクセスするアプリだとこうせざるを得ません

これでもう忘れることはないと思います、たぶん

0 件のコメント:

コメントを投稿