2017-01-27 9 views
0

내부에 나는 서버에 요청을 보낼 NSURLSessionDataTask을 (HTTP)을 사용하여 프레임 워크를 생성했다,하지만 난 예 응용 프로그램의 프레임 워크를 사용할 때마다,이 같은 경고를 보여iOS9 : 앱 운송 보안 .plist 프레임 워크

App Transport Security는 안전하지 않으므로 일반 텍스트 HTTP (http : //) 리소스로드를 차단했습니다. 임시 예외는 앱의 Info.plist 파일을 통해 구성 할 수 있습니다.

프레임 워크 .plist 안에 앱 전송 보안을 추가하려고했지만 여전히 작동하지 않았습니다. 하지만, Framework 외부의 .plist에 App Transport Security를 ​​추가하면 작동합니다.

이 문제에 대한 해결책이 있습니까?, 감사

+0

예외는 특정 프레임 워크가 아닌 앱에 부여됩니다. 앱의 Info.plist에 추가하기 만하면됩니다. – EmilioPelaez

답변

-1

enter image description here이 문제를 피하기 위해의 Info.plist에 참으로 중요한 NSAllowsArbitraryLoads를 추가합니다.

+0

애플이 앱에 ATS 사용 중지에 대한 정당성을 제공 할 것을 요구한다고 설명하지 않고이 솔루션을 권장하지 마십시오. – wottle

0

@EmilioPelaez가 말했듯이 응용 프로그램은 ATS가 활성 상태인지 여부를 제어합니다. 프레임 워크가 ATS 규칙을 위반하는 작업을 수행하는 경우 프레임 워크를 사용하는 각 앱에서 적절한 예외를 추가해야합니다.

이 동작에 대한 좋은 이유가 있습니다. 예를 들어 URL이 호출 응용 프로그램에서 프레임 워크 호출에 제공되는 일반 네트워크 도우미 프레임 워크를 예로들 수 있습니다. 프레임 워크는 ATS가 필요한지 여부를 알 수있는 방법이 없습니다. 반대로 프레임 워크에 ATS 예외가 필요한 하드 코딩 된 URL이있는 경우 호출하는 앱 개발자는이를 인식하고 프레임 워크 개발자가 예외를 추가 한 얼굴로 가려서는 안됩니다. 저는 개발자로서 본질적으로 안전하지 않은 프레임 워크를 사용하고 있다는 것을 알고 싶습니다. 후자의 시나리오를 다루는 경우 프레임 워크 문서가 제대로 작동하려면 프레임 워크 문서에 예외를 넣기 만하면됩니다.

또한, ATS있는 가장 좋은 방법으로, 그냥 모두를 비활성화하지 않는, 특정 도메인에 대한 ATS 요구 사항의 특정 부분을 사용하지 않도록 설정하여 보안 위험 노출을 최소화하는 데 사용할 수있는 특정 예외가 있습니다. 그렇게했는지 확인하십시오. 또한, 애플은 2016 년 말에 많은 ATS 예외에 대한 정당성을 요구할 계획 이었지만, 지금은 연기되었다. 예외를 추가하는 경우, App Store에 앱을 제출할 때 어떤 이유로 Apple이 이유를 묻는 메시지가 표시됩니다. 아마도 "스택 오버플로가 모든 ATS를 사용하지 않도록 설정했기 때문에"해서는 안됩니다.

0

프레임 워크는 ATS를 제어 할 수 없으며 응용 프로그램에서 제어합니다. 따라서 개발자는 문서에서 ATS 예외를 앱에 추가해야한다고 적어 두어야합니다.

그건 그렇다고하지 마세요. 특히 프레임 워크를 만드는 경우. 시간을 갖고 서버에 HTTPS 지원을 추가하거나 서버 개발자에게 문의하여 추가하십시오. Apple은 AllowArbitraryLoads/예외 지원을 곧 중단 할 것이기 때문입니다. 따라서 프레임 워크가 포함 된 앱은 왜 예외가 필요한지에 대한 유효한 이유를 제시하지 않고는 검토 과정을 거칠 수 없습니다. 애플은 원래 2017 년 1 월 1 일부터 지원을 중단 할 계획 이었지만, 알 수없는 시간 동안 그것을 연기했다. 아직도, 그들은 언젠가 그것을 할 것입니다. 미래를 계획하는 것이 낫습니다.

P. 서버를 완전히 통제 할 수없고 서버 개발자가 화성에 있고 프레임 워크가 실제로 해당 서버와 통신해야하는 경우 앱 개발자는 상황을 설명하여 검토를 통과 할 수 있습니다 (" 서버 "는 Apple Review 팀의 유효한 이유입니다.)하지만 각자가 반복해서해야 할 것입니다. 설명서에서 설명하는 방법과 말할 내용을 설명해야합니다. 따라서 HTTPS로 전환하는 것이 더 쉽습니다.