[ios] 내 info.plist 파일에 NSAppTransportSecurity를 ​​어떻게 추가 할 수 있습니까?

https://developer.apple.com/videos/wwdc/2015/?id=711 @ 5 : 55

내 info.plist에 이것을 추가 할 수없는 것 같습니다. 가치가 없습니다. XCode 버전 7.0 베타 (7A121l)를 실행 중이며 iOS9에서 테스트 중입니다.

비디오에서 볼 수 있듯이 원하는 URL을 구체적으로 선언 할 수 없기 때문에 계속 “앱 전송 보안이 안전하지 않기 때문에 일반 텍스트 HTTP (http : //) 리소스로드를 차단했습니다. 임시 예외는 앱을 통해 구성 할 수 있습니다. Info.plist file “오류.

그러나 구성 할 수없는 것 같습니다. 어떤 아이디어?



답변

이것을 시도하십시오 — Xcode-beta 4 7.0에서 나를 위해 일했습니다.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>yourdomain.com</key>
        <dict>
            <!--Include to allow subdomains-->
            <key>NSIncludesSubdomains</key>
            <true/>
            <!--Include to allow HTTP requests-->
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <!--Include to specify minimum TLS version-->
            <key>NSTemporaryExceptionMinimumTLSVersion</key>
            <string>TLSv1.1</string>
        </dict>
    </dict>
</dict>

또한 ATS를 비활성화하려면 다음을 사용할 수 있습니다.

<key>NSAppTransportSecurity</key>
 <dict>
      <key>NSAllowsArbitraryLoads</key><true/>
 </dict>

그러나 이것은 전혀 권장되지 않습니다. 서버에는 SSL 인증서가 있어야하며 프라이버시 유출이 없어야합니다.


답변

info.plist 파일의 NSAppTransportSecurity 사전에서 NSAllowsArbitraryLoads 키만 YES에 추가해야합니다.

예를 들면

 <key>NSAppTransportSecurity</key>
 <dict>
      <key>NSAllowsArbitraryLoads</key>
     <true/>
 </dict>

여기에 이미지 설명 입력


답변

그것은 나를 위해 작동하지 않았지만 이것은 트릭을했습니다.

<key>NSAppTransportSecurity</key>
     <dict>
          <key>NSAllowsArbitraryLoads</key><true/>
     </dict>  


답변

명확히하기 위해 … 항상 httpS를 사용해야합니다.

그러나 예외를 추가하여 우회 할 수 있습니다.

여기에 이미지 설명 입력


답변

Xcode 8.2, iOS 10

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>


답변

업데이트 답변 (WWDC 2016 이후) :

IOS apps will require secure HTTPS connections by the end of 2016

App Transport Security 또는 ATS는 Apple이 iOS 9에서 도입 한 기능입니다. ATS가 활성화되면 앱이 비보안 HTTP가 아닌 HTTPS 연결을 통해 웹 서비스에 연결됩니다.

그러나 개발자는 여전히 ATS를 끄고 앱이 위 답변에서 언급 한대로 HTTP 연결을 통해 데이터를 전송하도록 허용 할 수 있습니다. 2016 년 말에 Apple은 App Store에 앱을 제출하고자하는 모든 개발자에게 ATS를 의무화 할 것입니다. 링크


답변

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>com</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>net</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
        <key>org</key>
        <dict>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

이렇게하면 .com .net .org에 연결할 수 있습니다.