iPhoneアプリでHTTP通信するときにinfo.plistに記述すること

いま「Swiftではじめる iPhoneアプリ開発の教科書 Swift2 & Xcode 7対応」って本を買って、iPhoneアプリのサンプルを作って遊んでる。この本を読んでいてハマった箇所があるのでメモしておく。

P,228でHTTP通信できるようにするため設定するのだが、このやり方だとダメだった。

テキストでは次のように記載している。

■info.plistに通信を許可するドメインを記載する。
- Keyの名前を[NSAppTransportSecurity]にして、Typeを[Dictionary]にし、三角アイコンをクリックして下向きにする。
- [NSAppTransportSecurity]の行を選択して右クリック。[AddRaw]をクリックして下に1行追加し、Keyの名前を[NSExceptionDomains]にして、Typeを[Dictionary]にしたあと、三角アイコンをクリックして下向きにする。
- [NSExceptionDomains]の行を選択して右クリック。[AddRaw]をクリックして下に1行追加し、Keyの名前を[通信を許可するドメイン名]にして、Typeを[Dictionary]にしたあと、三角アイコンをクリックして下向きにする。
- [通信を許可するドメイン名]の行を選択して右クリック。[AddRaw]をクリックして下に1行追加し、Keyの名前を[NSTemporaryExceptionAllowsInsecureHTTPLoads]にして、Typeを[Boolean]、Valueを[Yes]にする。

で、言われたとおりに入力しようとしてもエラーを吐いて動かない。

App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.


てか、1行目の[NSAppTransportSecurity]とKey名を入力しても、Key名が勝手に変わってしまう。
なんなんだろうね????

結局、[NSAppTransportSecurity]と入力しても、[App Transport Security Settings]に変わってしまうので、Typeを[Dictionary]に。[AddRaw]を選択し、追加されたKey名を[Allow Arbitrary Loads]と入力し、Typeを[Boolean]、Valueを[YES]とセットする。

これで通信ができるようになる。
出版されたばかりのテキスト情報をインプットしても、そのままでは動かない。

iOS9だからかな?
いろいろ過渡期なんだろうね。

0 件のコメント:

コメントを投稿