面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

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

f:id:aryzae:20160912044200p:plain

Xcode8.0 GM seed

f:id:aryzae:20160912044204p:plain

備考

下記Keyが候補に出てこなかったけど、実装されているのだろうか・・・

  • NSAllowsArbitraryLoadsInMedia
  • NSAllowsLocalNetworking
  • NSRequiresCertificateTransparency

AppleでKeyを確認するとXcode nameが(none)になっているので、補完入力では出ないけど、Key自体は有効かもしれません。(テスト結局一切やれてない…。)
が、NSAllowsArbitraryLoadsInWebContentXcode nameも(none)になっているあたりリファレンスの更新がされていない可能性が…ちゃんとAllows Arbitrary Loads in Web Contentって出るのに。
NSRequiresCertificateTransparencyに関してはNSExceptionDomainsの中に含まれるようになってました。

===関連記事===

Xcode8.0 beta の記事

aryzae.hatenablog.com

Xcode8.0 beta2 の記事

aryzae.hatenablog.com

Xcode8.0 beta3 の記事

aryzae.hatenablog.com

Xcode8.0 beta4 の記事

aryzae.hatenablog.com

Xcode8.0 beta5 の記事

検証していないのでなし。

Xcode8.0 beta6 の記事

aryzae.hatenablog.com

Googleとかで検索するとbeta違いの記事が出てきて見苦しいから1ページにまとめようか思案中。