[iOS] App Transport Security has blocked a cleartext HTTP

iOS

iOS를 공부하면서 개발하는데..

개인 프로젝트로 날씨를 보여주는 앱을 만들고 있습니다.
Objective C를 기반으로 공부하면서 시작하는데 http 통신에서 난데없이 에러가 발생했습니다.

에러 본문

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.

왜 발생하는 것인가?

앞으로도 그럴것이지만 보안때문이라고 누구나 짐작할 수 있습니다.
ATS(App Transport Security)는 iOS9, OSX 10.11에서 앱과 네트워크간 안전한 통신을 보장하기 위한 기능입니다.
안전하지 않은 수준의 https, http 통신을 차단하는 것입니다.
시작은 2016년 하반기부터 적용됐습니다.

어떻게 해결 할 수 있나?

Xcode의 Project 내에 Info.plist가 있습니다.

info.plist > 우클릭 > open > source code

그리고 아래의 내용을 넣어주면 됩니다.

1
2
3
4
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>

아래와 같이 적당한(?!) 위치에 붙여 넣어주면 해결할 수 있습니다.