Copyright (C) iPhoneアプリ開発備忘録 All rights reserved.
ブログ内で記したコード、内容の正確性は保証いたしません。
記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。



2015年09月17日

iOS9でATS(App Transport Security)を無効にする



iOS9ではAPIやWebアクセスする場合、新たに設けられたATS(App Transport Security)がデフォルトで有効となり、httpsアクセスにしていないとアクセスがブロックされる。

アプリからアクセスするドメインが限定されているのならば、そのドメインのみ有効にすればよいが、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
 
posted by mobileDeveloper at 20:12 | Comment(0) | TrackBack(0) | 外部連携 はてなブックマーク - iOS9でATS(App Transport Security)を無効にする | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/426249451
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
Apple、Appleのロゴ、App Store、iPodのロゴ、iTunesは、米国および他国のApple Inc.の登録商標です。
iPhone、iPod touch、iPadはApple Inc.の商標です。
iPhone商標は、アイホン株式会社のライセンスに基づき使用されています。
その他、本ブログに記載されている製品名、会社名は、それぞれ各社の商標または登録商標です。