ios xcode http nsurlsession salesforce-ios-sdk

Falló la carga de NSURLSession/NSURLConnection HTTP(kCFStreamErrorDomainSSL,-9813) en iOS 9 con Xcode 7.1



salesforce-ios-sdk (4)

Desde iOS 9 en adelante Apple Enforce Para realizar una solicitud HTTP con un host específico para fines de seguridad. // También funciona en iOS 10 con Swift 3

Para eso, debe agregar el diccionario NSAppTransportSecurity a su archivo .plist de Projet. Entonces tu lista se verá de la siguiente manera.

Toque para ver .Plist File Image

Aquí, NSAllowArbitraryLoads básicamente significa conectarse a cualquier cosa (esto probablemente sea MALO). En su lugar, puede agregar un Host particular para conectarse.

Estoy usando iOS 9 como objetivo y usando Xcode 7.1, probé todo como mi mejor nivel para todas las soluciones de ATS pero no funcionó. A continuación se muestra la siguiente descripción de error que viene en la consola. Si surge alguna sugerencia estaré agradecido.

Algunas de las cosas clave aquí son:

NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) Error excluding Main.db from backup Error Domain=NSCocoaErrorDomain Code=4 "The file “Main.db” doesn’t exist." UserInfo={NSURL=file:///Users/Raj/Library/Developer/CoreSimulator/Devices/BC3A0589-3B9A-4AFD-8F2A-B1C92FA341DD/data/Containers/Data/Application/70B3043A-8553-41E5-A147-8508D08BF3E6/Documents/Main.db, NSFilePath=/Users/Raj/Library/Developer/CoreSimulator/Devices/BC3A0589-3B9A-4AFD-8F2A-B1C92FA341DD/data/Containers/Data/Application/70B3043A-8553-41E5-A147-8508D08BF3E6/Documents/Main.db, NSUnderlyingError=0x798465c0 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}} 2016-08-30 21:09:10.867 GFIM[80653:484899] SFOAuthCredentials:revokeRefreshToken: refresh token revoked. Cleared identityUrl, instanceUrl, issuedAt fields 2016-08-30 21:09:10.871 GFIM[80653:484899] INFO|0|SFPasscodeManager|Resetting passcode upon logout. SFOAuthCredentials:revokeRefreshToken: refresh token revoked. Cleared identityUrl, instanceUrl, issuedAt fields

Estas son las cosas que podrían ser la causa del problema.

2016-08-30 21:09:19.095 GFIM[80653:484899] SFOAuthCoordinator:webViewDidStartLoad: host=test.salesforce.com : path=/ 2016-08-30 21:09:19.863 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 2016-08-30 21:09:19.983 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 2016-08-30 21:09:20.016 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 2016-08-30 21:09:20.054 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 2016-08-30 21:09:20.194 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 2016-08-30 21:09:20.956 GFIM[80653:484962] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813) 2016-08-30 21:09:38.285 GFIM[80653:484899] SFOAuthCoordinator:webView:shouldStartLoadWithRequest: (navType=1): host=test.salesforce.com : path=/ 2016-08-30 21:09:38.311 GFIM[80653:484899] SFOAuthCoordinator:webViewDidStartLoad: host=test.salesforce.com : path=/ 2016-08-30 21:09:38.834 GFIM[80653:484899] SFOAuthCoordinator:webView:shouldStartLoadWithRequest: (navType=1): host=5-prod--stg.cs30.my.salesforce.com : path=/secur/frontdoor.jsp


Para aquellos que están trabajando en xcode 8 ... esto te ayudará ...


Si intenta realizar solicitudes HTTP con ATS habilitado (utilizando NSURLSession o bibliotecas como AFNetworking), verá errores como este.

Aquí es cómo deshabilitar ATS por completo. Abra Info.plist y agregue las siguientes líneas:

<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>

Tu archivo info.plist debería tener este aspecto

Consulte esta publicación: https://.com/a/31077483/6763322


Simplemente lo ejecuté en el dispositivo en lugar del simulador. Comenzó a funcionar