728x90
반응형
* fetch() 를 사용해 api 를 호출 시, android 에서는 이상이 없었으나 ios 에서만 에러가 발생
TypeError: Network request failed
# 원인
- 확인해보니 다양한 원인으로 발생할 수 있지만, 나의 경우는 호출 url 주소가 http 프로토콜을 사용하고 있어서 발생함
- iOS 9 버전 이후부터 적용된 보안 정책으로, 보안에 취약한 네트워크를 차단시킬 목적이라고 함
# 해결
- Info.plist 파일에서 NSAllowsArbitraryLoads 를 직접 코드를 추가하거나, xcode 에서 항목을 추가하여 해결
...
<key>NSAppTransportSecurity</key>
<dict>
<!-- 전체 url에 대해 http 허용할 때 -->
<key>NSAllowsArbitraryLoads</key>
<true/>
<!-- 특정 url에 대해 http 허용할 때 -->
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
...
# 참고
- stackoverflow : https://stackoverflow.com/questions/38862837/react-native-ios-network-request-failed
728x90
반응형