iOS9ではセキュリティ強化のためHTTP禁止
これまで作ったアプリがiOS9で正常に動かない。どうやら通信周りがうまくいかないようだ。
調べるとiOS9ではHTTPはセキュリティの都合でplistで明示的に許可を取らないと使えないらしい。
標準的なiOSアプリ開発での対策
基本的にHTTPS通信を使えとのこと。
しかしplistでブラックリスト、ホワイトリストを設定し許可したドメインのみでHTTP通信もできるようだ。
これに関しては今回は割愛。
今回紹介する応急処置は、推奨はされないのだろうけど
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
をplistに記述しこれまで通り全面的にHTTP通信を許可する方法だ。
Unityでは何が不都合か
UnityでビルドされたiOSプロジェクトのplistを手動で書き換えるのはスマートではない。
ビルド毎にplistを編集するのはしんどいし、リリースビルド時などに間違えがあれば最悪だ。
(その上、Unityクラウドビルドに対応できない。)
かといってPostProcessBuildPlayerスクリプトを書くのは面倒だ。
良質なアセット見つけた
BuildBuddy
[https://www.assetstore.unity3d.com/jp/#!/content/20041]
というアセットを見つけた。
これがあればplist(Androidアプリ開発でもmanifestファイル)を編集できる。
これはiOSやAndroidをビルドすると自動的に変更が適応される。
iOS9でHTTPを全面的に許可するにはこのように設定すれば良い。
あとは普通にiOSビルドすればplistに反映される。