[解決済み] iOS 9でNSURLSession/NSURLConnectionのHTTPロードに失敗する。
質問
既存のアプリをiOS9で動作させようとしたところ
AFURLSessionManager
.
__block NSURLSessionDataTask *task = [self.sessionManager dataTaskWithRequest:request completionHandler:^(NSURLResponse * __unused response, id responseObject, NSError *error) {
if (error) {
} else {
}
}];
[task resume];
以下のようなエラーが出ます。
Error Domain=NSURLErrorDomain Code=-999 "cancelled.
また、以下のログを取得しています。
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824
CFNetwork SSLHandshake failed (-9824)
更新しました。 私のソリューションに複数のアップデートを追加しました。 iOS 9 で NSURLSession/NSURLConnection の HTTP ロードに失敗しました。
どのように解決するのですか?
解決策が見つかりました。
iOS9 では、ATS は HTTPS の使用を含む、ネットワーク通話中のベスト プラクティスを実施します。
ATS は偶発的な情報漏洩を防ぎ、安全なデフォルトの動作を提供し、導入が簡単です。新しいアプリを作成するか、既存のアプリを更新するかにかかわらず、できるだけ早く ATS を採用する必要があります。新しいアプリを開発する場合は、HTTPS を排他的に使用する必要があります。既存のアプリを使用している場合は、今すぐできる限り HTTPS を使用し、残りのアプリをできるだけ早く移行する計画を作成する必要があります。
ベータ 1 では、現在 info.plist でこれを定義する方法はありません。解決策は、手動で追加することです。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
<イグ
更新1。 これは、iOS9 の ATS サポートを採用する準備が整うまでの一時的な回避策です。
アップデート2です。 詳細については、以下のリンクをご参照ください。 http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/
更新3です。 TLS 1.0 しか持たないホスト (YOURHOST.COM) に接続しようとしている場合。
アプリの Info.plist に以下を追加してください。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>YOURHOST.COM</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>1.0</string>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
関連
-
[解決済み] トランスポートセキュリティがクリアテキストのHTTPをブロックしています。
-
[解決済み] UITextViewのプレースホルダー
-
[解決済み] UIViewController のビューが表示されているかどうかを確認する方法
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] テキストフィールドを移動する方法(次へボタン/完了ボタン)
-
[解決済み] インポート vs #インポート - iOS 7
-
[解決済み] コア・データ エンティティの全インスタンスを削除する最短の方法
-
[解決済み] UITextBorderStyleNoneを使用してUITextFieldのパディングを設定する
-
[解決済み] Swiftのプロトコルでオプションのメソッドを定義するには?
-
[解決済み】CFNetwork SSLHandshakeが失敗する iOS 9
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] コードサインエラーです。期限切れのプロファイルを削除した後、プロビジョニングプロファイルが見つからない
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] UILabelで複数行のテキストを表示する
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される
-
[解決済み] UITextBorderStyleNoneを使用してUITextFieldのパディングを設定する
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] Cocoapods警告 - CocoaPodsがプロジェクトの基本構成を設定しなかった理由は、プロジェクトに既にカスタム構成が設定されているためです。
-
[解決済み】CFNetwork SSLHandshakeが失敗する iOS 9