react native에서 ios 실제 디바이스로 테스트할 때, 서버가 localhost 일 때 network request failed 에러가 뜰 때가 있다.
시뮬레이터에서는 정상적으로 잘 되지만 실제 디바이스에서는 작성되지 않아 해결법을 찾아보았다. 여러 시도를 해봤지만 아래 소개하는 방법을 시도했을 때 바로 해결되었다.
ios는 기본적으로 http 를 허용하지 않고 https 만을 허용한다.
따라서 info.plist 에서 localhost 인 경우 http를 허용하도록 해주는 코드를 추가한다.
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
ip 주소 확인 후 서버의 url 주소를 수정해준다.
// const url = 'http://localhost:3000/your_api'
// localhost를 현재 내 ip 주소로 수정해준다.
const url = 'http://192.168.xx.xx:3000/your_api'
주의할 점: ip 주소가 바뀔 때마다 url 을 바꿔줘야 합니다!