iPhoneアプリ『お散歩ミッション その?』とATS
お久しぶりです。三日坊主(ジジィ?)の川上です。
『お散歩ミッション』。。なかなか進みませんねぇ。。m(_ _)m
このところ、以前公開したMyアプリのswift2対応をちょこちょこしていました。
今後、Appstoreに出すアプリは、
『アプリ側もios9対応と前々から言われているipv6対応』
が必須になる模様。
昨年10月にswiftがswift1からswift2にVerUpされたのを機に、公開中のMyアプリをxcode7、iOS9でリビルドしてみた。。。。orz
仕様がキツクなったというか、変更された箇所が多くて、これが全然通らない。困ったもんです。
ワーニングやerrorをぼつぼつと退治しておりました。
どうにかグーグル先生聞きながら、なんとかビルドは通せました。
で、実行してみたら ATSで引っかかり落ちましたw。(;o;)
ATS(列車自動制御?と思ったアナタ、それがフツウです。)は、
「App Transport Security」のことで、iOS9とOS X 10.11から導入されるネットワークセキュリティ対策のことで、これが結構、キツイのです。
グーグル先生によりますと
『基本的には、アプリとサーバーの間のネットワーク接続をSSLにすることを推奨するというもので、デフォルトの設定では、SSLではないネットワーク接続が失敗となります。 (なお、ATSが適用されるのは、iOS9用にビルドした場合のみであり、iOS8以前用にビルドされたアプリをiOS9で実行してもATSは適用されません。)
SSL以外にも、下記のような細かい条件が指定されてます。
- サーバーはTLS 1.2以上をサポートする必要がある
- 暗号化は forward secrecy(対応する暗号化は上記資料を参照)に対応していなければいけない
- サーバー証明書のFingerprintが、SHA256以上でないといけない。また2048bit以上のRSA鍵か256bit以上のECC鍵を用いている。
- 適切なTLS証明書を使っている』
との事です。
簡単に言えば、「http://のWebページは https://にしなさいよ。http://のWebページへのコネクションは制限されまっせ」です。
とりあえず、Myアプリで参照しているWebページ(某銀行のホームページ)は「http://のWebページ」なので、ATSを無効にして実行すると、なんとか起動できました。でも、全機能のテストが不十分なので公開中アプリのUpdateは、まだまだです。
公開中のアプリは
(なお、ATSが適用されるのは、iOS9用にビルドした場合のみであり、iOS8以前用にビルドされたアプリをiOS9で実行してもATSは適用されません。)
なんで、そのまま放置してます。(my iphone6+( ios9.2)で稼働中の myアプリは、今の所、機嫌よく動いているので大丈夫でしょう。多分。 )
が、GA、ガ..
『お散歩ミッション』は、 ATSを無効(Appleさん非推奨!)にするわけにはいかんでしょうな。
でも、「ええい!皆の者、ATSを無効にすること、まかりならん」ってなったら、どうしましょうかね〜。
多分、『お散歩ミッション』が 出来上がる頃には、ATS関連の情勢も固まってることでしょう。