지난 WWDC에서 iOS 9가 발표되면서 apple developer 사이트에도 iOS 9 베타 버전이 공개되었는데요,
그래서인지 벌써부터 iOS 9 베타를 설치하시는 분들이 많이 계시더군요.
그런데 iOS 9로 업데이트한 후 운영 중인 앱이 사용할 수 없다는 VOC가 들어오더군요.
마침 xcode 7 베타 버전도 같이 공개되어 부랴부랴 다운로드 받아서 설치해 봤습니다.
시뮬레이터로 확인해 보니
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.
CFNetwork SSLHandshake failed (-9824)
NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9824)
Error Domain=NSURLErrorDomain Code=-1022 "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection."
secure connection 이 필요하다는 메시지가 나오네요.
검색을 해보니 iOS 9.0 이상에서는 ATS(App Transport Security)라는 기술이 나오네요.
결론은 app - web 간 connection 에서는 secure connection 이 기본값이라는 ....
그런데 서버가 특A급은 아니다 보니.... 아무래도 SSL 암복호화 부하를 무시할 수는 없어서....
로그인이 필요 없는 일부 기능만이라도 SSL을 좀 피해보려고....
관련 내용을 찾아 봤습니다.
찾아보니 info.plist 에서 예외 처리를 할 수 있더군요.
NSAppTransportSecurity > NSAllowsArbitraryLoads : true 로 설정하면 ATS 를 비활성화 할 수 있습니다.
또는
다시 리빌드 해보니 정상적으로 사용이 가능하네요.
조금이나마 도움 되시기를....
※ 참고