반응형
RN 개발시 로컬서버에 아래처럼 접근해서 쓰고있었다.
예시)
서버주소 : http://localhost:1337
안드로이드 :
# 에뮬레이터용
adb -e reverse tcp:1337 tcp:1337
# 실제기기용
adb -d reverse tcp:1337 tcp:1337
iOS :
는 그냥 시뮬레이터에서 아무설정 없이도 잘된다.
문제는 iOS 실제기기에 연결하려니 Network Request Fail 에러가 계속 발생했다.
처음엔 보안설정 문제인줄 알고 설정을 만지작 거렸으나 별 효과가 없었다.
조금 찾아보니 iOS에선 안드로이드의 adb reverse 같은 리버스프록시를 허용하지 않는듯 하다.
(iOS 시뮬레이터에서 localhost접근이 되는 이유는 에뮬레이터와 달리 분리된 환경이 아니어서 인듯 하다)
그래서 그냥 RN에서 ip를 긁어다가 쓰는 방식으로 구현했다.
const getDevServerAddress = () => {
const scriptURL = NativeModules.SourceCode.scriptURL;
const address = scriptURL.split('://')[1].split('/')[0];
const hostname = address.split(':')[0];
return hostname;
};
const BACKEND_URL = __DEV__ ? getDevServerAddress() : '<프로덕션서버주소>';
반응형
'Front-end > React & React Native' 카테고리의 다른 글
[React Native] 파일 다운로드시 ios 파일탐색기에서 안보이는 문제 해결방법 (2) | 2020.12.08 |
---|---|
[React Native] ios 앱 배포하기 - 빌드부터 스토어 업로드까지 (0) | 2020.12.07 |
[React Native] ios 빌드시 main.jsbundle does not exist. This must be a bug with 에러 해결방법 (0) | 2020.12.07 |
[React Native] react-native-naver-map ios 빌드시 Undefined symbols for architecture x86_64: 에러 (0) | 2020.12.06 |
React Native 이미지/동영상 갤러리(스와이프) 구현 삽질기 (4) | 2020.11.26 |