React Native - 이거 왜.. 빌드해도 Metro bundler 에서 웹소켓으로 리소스를 내려받죠 ?


(Cheonbrave) #1

개인적으로 React Native 앱을 개발중입니다

뭐 하나부터 열까지 궁금한것 투성이지만 책도 보고, 구글링도 하고 차근차근 진행중인데요
이것만큼은 어디서도 답변을 찾아보기 어려워서 이렇게 글을 남겨봅니다

정말 너무 답답한건
어딜가도 환경구축 및 빌드방법에 대한 내용만 있고
앱스토어 배포 방법이 없더라구요 아무튼
배포한 후에 어떻게 되는지가 궁금하여 아래와같이 질문을 남깁니다

[배경]
개발장비 : 맥북
프로젝트 생성 : react-native-cli 를 사용해서 “react-native init {프로젝트명}” 으로 프로젝트를 생성

[질문]
프로젝트 디렉토리에 보면 ios, android 디렉토리가 있죠
이곳에서 xcode 또는 android studio를 통해 프로젝트를 열고 빌드하고 폰에 올릴수도있습니다

에뮬레이터로 개발할때 Metro bundler 가 자동으로 실행되면서
"app.js"에 수정한 내용을 다시 로딩해서 화면에 보여주더라구요 ? 매번 빌드 안해도되서 좋다고 생각했습니다

그런데…

제가 xcode에서 Adhoc 프로비저닝 프로파일로 빌드해서 폰에 올렸는데요
그때도… 폰이랑 맥북에 metro bundler가 서로 상호작용 하면서 리소스를 다운로드 받더라구요 ?
그리고 웃긴건 맥북과 폰이 동일한 WIFI환경이 아닐경우는 연결을 못하는듯하고

또 개발용 프로피저닝파일로 빌드해서 폰에 올리면
동일한 네트워크 환경일땐 metro bundler에서 리소스 내려받고 잘 싱행되지만
동일한 네트워크 환경이 아닐때는 RTCWebsocket ? 계속 소켓연결 시도하면서 런치화면에서 다음으로 넘어가질 않아요…

여기서 질문은… 이거 꼭 MetroBundler를 통해서 소스를 내려받고 실행되야만 하나요…?
그럼 따로 서버가 존재해야하는건지…

저는 서버 없이 Firebase 기반으로 앱을 개발하려고하는사람이라서요…
저 기능을 꺼버릴순 없는건지 …

다른 리액트네이티브앱들도 위와같은 로딩기능을 들고서 스토어에 배포되는건가요 ?
너무 궁급합니다 ㅠ_ㅠ

개인 연락처 : [email protected]
카카오톡 아이디 : cheonbrave

리액트네이티브 고수님이 계시다면 답변좀 부탁드립니다 ㅠ ㅠ


(이종은(Jong Lee)) #2

Xcode의 Scheme의 Build configuration이 Debug일 때 packager의 bundle을 받는 개발메뉴도 사용가능한 development 버전으로 빌드하게 됩니다.
Archive할 때는 Build configuration이 release가 기본입니다

실제 디바이스에서 배포되었 때와 동일한 빌드로 테스트하고자 할 경우에 adhoc을 이용하는 것보다 testflight을 이용하는 것이 여러모로 장점이 많습니다.
이때 build는 fastlane을 이용하면 더욱 편리합니다.

ios 앱의 빌드/테스트/배포 과정에서 testflight과 fastlane 사용을 추천합니다. 관련 글은 검색해보시면 많이 나올 겁니다. :grinning:


(Cheonbrave) #3

@yomybaby 님 답변 감사합니다!! :heart_eyes:


(Cheonbrave) #5

음… 일단 엑스코드상에서 적용 안되게 하는 방법은 못찾았어요 말씀해주신대로 빌드해서 Testflight로 해보니까 별다른 웹소켓연결현상이나 장시간 런칭화면이 나오는 현상은 사라지고 바로바로 뜹니다

감사합니다