betahikaruのブログ

まとめる前の頭の内容を吐き出す。まとめた物はQiitaなどで。

iOSシミュレータでiOS8.1だとHTTP通信がエラーに

1・2年ぶりにiOSアプリの勉強を再開しています。が、早速ヤクの毛狩りに精を出してました。その結果をメモしていきます。

現象

iOSのバージョンによって、HTTP通信がエラーになったり通ったりする。 ログは以下。

2015-01-19 01:07:51.739 NetworkTest[11594:478081] error: Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." UserInfo=0x7fdcb270bd70 {NSUnderlyingError=0x7fdcb266a910 "The network connection was lost.", NSErrorFailingURLStringKey=http://api.tiqav.com/search/random.json, NSErrorFailingURLKey=http://api.tiqav.com/search/random.json, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=57, NSLocalizedDescription=The network connection was lost.}

HTTP/HTTPS通信の可否とiOSのバージョンの対応。色々試した感じ、こうなった。iPhone6/plusはiOS8以降しか無いので、iPhone5sと同じだった。

2015/03/28 追記

原因は、ウイルスバスター for Mac でした。

これで解決!

Thanks for ... ios.steppers-hi.net

環境

検証ソース

(NSString)getHttpDataWithUrl:(NSString)url メソッドを見てください。

NetworkTest/ViewController.m at master · betahikaru/NetworkTest · GitHub

Qiita情報

明らかに以下と同じ現象だが、ウイルスバスター for Mac を一時的に切ってもうまくいかなかったりした。もう少し、(シミュレータ、XcodeMacの再起動、シミュレータ内のAllow HTTPS なんとかオプションのきりかえを)試してみようと思う。

iOS SimulatorでiOS8を動作させるとHTTP通信ができない - Qiita

経緯

そもそもは、iOSで非同期通信をしてJSONを読む処理を、以下の記事を参考に実装したかった。

SwiftでWebAPIアプリを作った時の要点 - Qiita

たまたま既存のObjective-Cのアプリがあったので、そこに書くために必死こいてObjective-C化した。 そしたらエラーになったので、原因が分かるまで(厳密にはまだ特定できてないが)大変な時間がかかった。。。

まとめ

むずかしいっすよiOSアプリ。