対象:
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)

新着情報
【iOS Objective-C, Swift Tips】バッジの表示(Swift)
【iOS Objective-C, Swift Tips】画像の向きを指定して保存する(Swift)
【iOS Objective-C, Swift Tips】UIImagePickerControllerの表示を日本語にする(Swift)

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