[iOS 10] iOS 10 での ATS 対応について
ATS 対応が必須になります
2016 年の年末から ATS (App Transport Security) の有効化が必須となります。
ATS とはアプリとウェブサービスとの間でセキュアな接続を行うための機構です。
http
プロトコルで通信を行おうとすると通信エラーが発生するようになり、正常に通信を行うためには https
プロトコルを利用することが必要となります。
ATS の詳細に関しては、弊社の平屋が書いた こちらの記事 をご覧ください。
Apple のアナウンス
WWDC 2016 では ATS に関して以下のように発表されました。
App Transport Security Enforcement
Enforced at the end of 2016
Reasonable justification required for most exceptions
- NSAllowsArbitraryLoads
- NSExceptionAllowsInsecureHTTPLoads
- NSExceptionMinimumTLSVersion
Example -- Communicating with a specific third-party server
要約すると以下のようになります。
- 2016 年の終わりに ATS を強制する
- 例外設定(ATS の無効化)には正当な理由が必要
- サードパーティのサーバーと通信を行っている など
これまで NSAllowsArbitraryLoads を YES に設定して ATS を無効化していた場合は、Apple の審査を通すためには 2016 年末から有効化する必要があります。
または無効化したままでも正当な理由を Apple に説明すれば審査に通るかもしれませんが、それなりのやり取りが発生し時間がかかることでしょう。(私の予想です)
新たなキー NSAllowsArbitraryLoadsInWebContent
iOS 10 より、ATS に関して NSAllowsArbitraryLoadsInWebContent
という新たなキーが追加されました。
これは WebView を利用してウェブコンテンツを表示している場合、その内容に関しては http
での通信を許容するというものです。
API 通信を行い、かつ WebView でのコンテンツ表示を行っているようなアプリは、API 通信で https
プロトコルを利用しているならばこのキーを YES に設定するだけで ATS 対応を完了することができます。
除外ドメインの設定が不要となるので、かなりのコストを削減することができるでしょう。
残念な点
iOS 10 のみにしか適用されません。
この設定でアプリをビルドしても iOS 9 には適用されません。
従来通り Insecure なアクセスとみなされ、ウェブページを表示することができなくなります。
iOS 9 にもサポートする場合は、やはりこれまで通り除外ドメインを一つ一つ追加していくという作業が必要になります。
その作業のコストが膨大な場合は 2016 年末以降にアプリをリリース/アップデートするタイミングで iOS 9 をサポート OS から外すという選択肢もアリかと思います。
嬉しい点
UIWebView にも適用されます。
WWDC の発表内では WKWebView を使用している場合 と明言しているのですが、動作確認して試したところ、UIWebView に関しても適用されました。
Apple の Developer Forum では Apple の中の人によって「WKWebView と UIWebView の両方でこのキーが適用される」との仕様に変更されたと説明されています。
設定方法
最後に
iOS 10 から追加された新たなキー NSAllowsArbitraryLoadsInWebContent を利用すれば WebView 内のコンテンツに関しては http
通信が許可されます。
iOS 9 には適用されないというのが残念ですが、今後のアプリ開発でも利用する機会があると思うので覚えておいて損はないと思います。
リンク
ミレニアム・ファルコン製作日記 #34
34 号 表紙
パーツ
成果
今回の作業は以下の 2 つでした。
- 推力偏向板を仮組みする
- 燃料供給圧力安定器を組み立てる
32, 33 号と同様に推力偏向板に油圧アクチュエータを取り付けました。
こちらはすべて船体底面用のパーツとなります。
推力偏向板にセットされている三角形の燃料供給圧力安定器も取り付けました。
後の号で外殻プレート全体をフレームに固定した後に接着するそうです。
BB-8 ポップコーン バケット
東京ディズニーランドで BB-8 のポップコーン バケット が発売されました。
東京ディズニーランド スター・ウォーズ スーベニア付きメニュー BB-8ポップコーン バケット
みなさん R2-D2 のバケットはゲットしましたか?
私はまだ持っていないので、次回ディズニーランドへ行った時に R2 と BB-8 両方を手に入れようと思います!
それではまた次回。
May the Force be with you!