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
Xcode8.0 beta Build
結果、NSAllowsArbitraryLoadsInWebContentが効いていない?もしくは間違った振る舞い?をしているようにも見える。
実はこれで正しい挙動なのだろうか?それともまだbeta1だからバグだったりするのだろうか?
エンジニアたちの間でも情報が錯綜しているという話なので、またbeta2とか出た時に試して確認してみようと思う。
=== 関連記事 ===