LoginSignup
10
9

More than 5 years have passed since last update.

UnityでiOS9ATS対策(HTTP通信が使えない件の応急処置)

Posted at

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を全面的に許可するにはこのように設定すれば良い。

Title.unity - Cazasdeel - iPhone, iPod Touch and iPad 2015-09-24 03-36-38.jpg

あとは普通にiOSビルドすればplistに反映される。

10
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
9