ATS(App Transport Security)を"Xcode8 beta3"+"iOS10 beta3"でテストしてみた
今回は、beta3が出て早々記事にしてみた!
どうせ結果は、beta2と変わらないんだろうなーと思って検証してみたが…
前回のXcode8.0 beta2の追記からhttpによるLANへのアクセスも検証に加え始めた。
テスト方法
テスト方法は、プログラムの使い回しで基本今までを踏襲していますが、下記赤字が変更点となります。
- iOS10は、iOS10.0 beta3を使用
- iOS9は、beta3と同日?に出たiOS9.3.3を使用
- ATSは、最初Xcode7BuildのipaとiOS9の組み合わせで発動していたので、Xcode7BuildとXcode8Buildで違いでるか比較
- NSAllowsArbitraryLoadsInWebContentの設定で挙動がどう変わるか確認
- HTTPSは、URLに
https://www.apple.com/
を使用 - HTTPは、URLに
http://www.yahoo.co.jp/
を使用 - HTTP(LAN)は、MAMPを使用してURLに
http://192.168.0.12/
を使用 - UIWebView / WKWebView / NSURLSession / SFSafariViewController の4つで比較
- キャッシュ?のようなものが残り不自然な挙動があったため、テスト毎にテストアプリをインストールし直して実行
- ATSは表のKeyのみを設定
- 補足としてnoneとなっているものはKeyを削除している状態のこと
↓↓↓以下結果 (赤字がbeta 2と比較して変わった点)↓↓↓
Xcode7.3.1 Build
Xcode8.0 beta3 Build
結果
- iOS9.3.3が出たことで、もしかしたらiOS9もLANは無条件でアクセスできるようになるか?!と淡い期待したけど、そんなことはなかった。
NSAllowsArbitraryLoadsInWebContent
が効いているものの、WKWebViewではなく、何故かUIWebViewに効いていた…バグとしか思えない。- さらにこの時、UIWebViewDelegateの
webViewDidFinishLoad(_:)
が2回呼ばれる不可解な現象もあった。
beta2からもう変わることないし、意味ない検証になると思っていたけど、
こんなこともあるから確認するって大事だなぁ。
iOS10は個人的にiOS8の時と同じ匂いがしてきていて不安が募るので、
Apple様には是非とも頑張ってもらいたい。
===関連記事===