アプリからアクセスするドメインが限定されているのならば、そのドメインのみ有効にすればよいが、WebViewを使っている場合は、全体的にATSを無効にする必要がある。(ATSの全体的な無効化は推奨されていない)
1. ATSを全体的に無効にするには、info.plistに下記を追加する。
(1) NSAppTransportSecurityキーをDictionary形式で追加する。
(2) NSAppTransportSecurityキーの下位にNSAllowsArbitraryLoadsキーをBoolean形式で追加し、YES(True)にする。
NSAppTransportSecurity (Dictionary)
→ NSAllowsArbitraryLoads (Boolean) YES
2. ATSを特定ドメインに対して無効にするには、info.plistに下記を追加する。
(1) NSAppTransportSecurityキーをDictionary形式で追加する。
(2) NSAppTransportSecurityキーの下位に対象となるドメイン、各キーを追加する。
NSAppTransportSecurity (Dictionary)
→NSExceptionDomains (Dictionary)
→ 対象ドメイン (Dictionary)
→NSExceptionAllowsInsecureHTTPLoads (Boolean) YES ・・・ 証明書失効等の場合もアクセスを許可する
→NSIncludesSubdomains (Boolean) YES ・・・ サブドメインも対象にする
→NSExceptionRequiresForwardSecrecy (Boolean) NO ・・・ ATSを無効にする
3. ATSを全体的に無効にする NSAllowsArbitraryLoads と、特定ドメインに対して指定するNSExceptionAllowsInsecureHTTPLoads 等を混在して指定した場合は、ATSを全体的に無効にした状態において、特定ドメインに対してATSが細かく設定される。
参考記事:
https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/
http://stackoverflow.com/questions/31254725/transport-security-has-blocked-a-cleartext-http
http://mushikago.com/i/?p=6150