ATS(App Transport Security)を"Xcode8 GM seed"+"iOS10 GM seed"でテストしてみた
iPhone7が発表され、Xcode8やiOS10のGM seedも来ましたね。
いつものごとく、テストしてみました。
実質リリース版と同じなのでテストとしてはラストになると思います。
テスト方法
テスト方法は、プログラムの使い回しで基本今までを踏襲していますが、下記赤字が変更点となります。
- iOS10は、iOS10.0.1 GM seedを使用
- iOS9は、iOS9.3.5を使用
- 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を削除している状態のこと
結果
Xcode7.3.1 Build
Xcode8.0 GM seed
備考
下記Keyが候補に出てこなかったけど、実装されているのだろうか・・・
NSAllowsArbitraryLoadsInMedia
NSAllowsLocalNetworking
NSRequiresCertificateTransparency
AppleでKeyを確認するとXcode nameが(none)になっているので、補完入力では出ないけど、Key自体は有効かもしれません。(テスト結局一切やれてない…。)
が、NSAllowsArbitraryLoadsInWebContent
のXcode nameも(none)になっているあたりリファレンスの更新がされていない可能性が…ちゃんとAllows Arbitrary Loads in Web Content
って出るのに。
NSRequiresCertificateTransparency
に関してはNSExceptionDomains
の中に含まれるようになってました。
===関連記事===
Xcode8.0 beta の記事
Xcode8.0 beta2 の記事
Xcode8.0 beta3 の記事
Xcode8.0 beta4 の記事
Xcode8.0 beta5 の記事
検証していないのでなし。