Mac OS 10.11 오면서 한번 했던 삽질인데, 따로 어딘가에 기록하지 않아서 다른 프로젝트 하면서 또 시간낭비 했다.
NSError* error = nil; NSURL* requestURL = nil; requestURL = [NSURL URLWithString:@"https://mytesturl.jsp"]; // todo : 확인할 URL 정보를 입력한다. NSXMLDocument* xmlDoc = [[NSXMLDocument alloc] initWithContentsOfURL:requestURL options:NSXMLDocumentTidyXML error:&error]; NSLog(@"xmlDoc(%@)", xmlDoc); |
위의 예제에서 테스트 URL(https://mytesturl.jsp)은 각자 테스트할 서버의 URL을 입력하면 된다.
10.10 까지는 아무런 문제가 없던 소스가 다음과 같은 에러를 뱉는다.
2016-06-07 12:03:59.085 test[796:18595] CFNetwork SSLHandshake failed (-9824)
2016-06-07 12:03:59.086 test[796:18595] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
원인은 10.11 부터 Info.plist에 예외 도메인으로 지정하지 않은 모든 host에 대해서 TLSv1.2 SSL로 요청하게 됩니다.
예외를 요청하려면 info.plist에 다음을 추가하거나
<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>yourserver.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow insecure HTTP requests--> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict> |
다음을 추가하면 된다.
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict> |
출처 : http://stackoverflow.com/questions/30720813/cfnetwork-sslhandshake-failed-ios-9
'Mac&iOS' 카테고리의 다른 글
noteNewRecentDocumentURL is not working (0) | 2016.06.20 |
---|---|
런타임때 레티나 디스플레이 체크 (0) | 2016.06.08 |
*** -[MyWindowController tableView:objectValueForTableColumn:row:]: message sent to deallocated instance (0) | 2016.06.01 |
Help Indexer 파일 받기 (0) | 2015.03.11 |
Apple help book 만들기(도움말 만들기) (0) | 2015.03.11 |