対象:
Swift

Web Viewでhttpのサイトが表示されない(Swift)

iPhone 6sを手に入れて、Web View(UIWebView、及びWKWebView)を利用したアプリをデバッグしようとしたら、httpのサイトが表示されなくなって「んっ!?」と思ったことはないだろうか。それはiOS 9から導入されたATS(App Transport Security)のせいだ。つまり、iPhone 6sに限った話ではない。

Web Viewでhttpsのサイトを表示するのは問題ないが、httpのサイトを表示しようとすると、Xcodeにはこんなログが表示されているかも知れない。

2015-10-03 09:45:29.971 SwiftWebViewTest[1871:1248680] 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.

セキュリティを考えるとあまりおすすめはできないが、ATSを無効にしてしまうにはplistに以下を加えれば良い。

	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
	</dict>

プロパティリストでこれを見ると、右のようになる。


ATSは有効にしておき、ドメイン毎にセキュアでないアクセスを許可するには以下のようにする。www.office-matsunaga.bizの部分を目的のドメインに適宜変更してほしい。

	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSExceptionDomains</key>
		<dict>
			<key>www.office-matsunaga.biz</key>
			<dict>
				<key>NSExceptionAllowsInsecureHTTPLoads</key>
				<true/>
			</dict>
		</dict>
	</dict>
(2015/10/04)

新着情報
【オープンソースソフトウェア環境構築】Apple silicon Macで開発環境を構築
【Rust Tips】Actix webでJSONをPOSTする
【Rust Tips】コマンドライン引数を取得する

Copyright© 2004-2019 モバイル開発系(K) All rights reserved.
[Home]