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

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

ATS(App Transport Security)を"Xcode8 beta1"+"iOS10 beta1"でテストしてみた

developer.hatenastaff.com
この記事に触発されたこと、愛用するKinoppyがiOS10βで一切通信が正常に行えなかったこと、そのあたりでATS(App Transport Security)の振る舞いが気になり実機でテストしてみた。

気になったこととして

  • Xcode7系でBuildされている今AppStoreで配信されているアプリがATSの対応状態によって、iOS10ユーザがそのアプリを使用した時問題あるか
  • Xcode8系でBuildした今後配信されるアプリがATSの設定によってiOS9とiOS10でどんな違いがでるか

これらがわかればいいかなーとテスト。

Hatena Developer Blogさんの表を参考にしつつ下記環境でテスト

  • ATSは、最初Xcode7BuildのipaとiOS9の組み合わせで発動していたので、Xcode7BuildとXcode8Buildで違いでるか比較
  • HTTPSは、https://www.apple.com/を使用
  • HTTPは、http://www.yahoo.co.jp/を使用
  • UIWebView / WKWebView / NSURLSession / SFSafariViewController の4つで比較
  • ATSは表のKeyのみを設定
  • 補足としてnoneとなっているものはKeyを削除している状態のこと

↓↓↓以下結果↓↓↓

Xcode7.3.1 Build

f:id:aryzae:20160629000532p:plain

Xcode8.0 beta Build

f:id:aryzae:20160629000528p:plain


結果、NSAllowsArbitraryLoadsInWebContentが効いていない?もしくは間違った振る舞い?をしているようにも見える。
実はこれで正しい挙動なのだろうか?それともまだbeta1だからバグだったりするのだろうか?
エンジニアたちの間でも情報が錯綜しているという話なので、またbeta2とか出た時に試して確認してみようと思う。


=== 関連記事 ===

Xcode8 beta2 + iOS10.0 beta2で再テスト

aryzae.hatenablog.com

Xcode8 beta3 + iOS10.0 beta3で再テスト

aryzae.hatenablog.com