2016-12-11 2 views
1

현재 제공되는 사용자 및 가능하게는 사용자 호스팅 서비스에 연결해야하는 응용 프로그램을 개발 중입니다. 이 서비스는 모두 HTTPS를 지원하지는 않습니다. 과거 NSAllowsArbitraryLoads에서는 사용자가 App Transport Security에도 불구하고 이러한 서비스에 연결할 수있었습니다. 이해하는 바와 같이 직접 교환하지 않고 NSAllowsArbitraryLoads을 곧 사용할 수 없게됩니다.응용 프로그램 전송 보안 아래 사용자 서버와 통신

나는 앱 운송 보안에 대한 두 가지 질문이 있습니다

  • 은 더 이상 사용되지 수 NSAllowsArbitraryLoads 것?
  • 나중에 어떻게 이러한 서비스에 연결할 수 있습니까?

그 줄에 따라 내 앱은 신뢰할 수없는 TLS 인증서도 지원해야합니다. 현재로서는 URLSessionTaskDelegate의 urlSession(_ session: URLSession, task: URLSessionTask, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void)에 구현할 계획입니다.

이 상황을 처리하는 유효한 방법입니까?

건배!

답변

3

NSAllowsArbitraryLoads은 더 이상 사용되지 않습니다. 당신은 여전히 ​​그것을 사용할 수 있습니다. 그러나 2017 년 1 월부터는 새로운 제한이 있습니다. info.plist에 정의 된 ATS 예외가있는 앱은 정당한 이유가 없을 때 더 이상 승인되지 않습니다. (새로운 빌드에만 적용됩니다. 현재 AppStore에있는 모든 빌드는 영향을받지 않습니다.)

자세한 내용은 WWDC 2016의 Session 706을 참조하십시오. 개발자 포럼의 This thread에는 유용한 정보가 포함되어 있습니다.


URLSession을 사용하면 여전히 작동합니다. 코드를 변경할 필요가 없습니다. 그러나 ATS 예외가 없으면 신뢰할 수있는 TLS 인증서가 필요합니다.