기록을 위해서 적는다 개발 환경 세팅은 아무래도 미리 기록 안해두면 잊어버리는 경우가 잦아서...
특히 macbook가지고 하는건 처음이라 100% 하긴 해야할 듯하다.
1. expo ios 프로젝트 빌드를 한다.
npx expo prebuild --platform ios
2. expo 빌드 스크립트를 못 찾겠다는 버그가 뜰 때가 있다. readable 하지 않다나 뭐라나 ->
xcodeproj 파일을 연다음, build settings 에서 code sandboxing을 no로 바꾼다.
(다만 이후 대부분의 작업은 xcworkspace파일로 xcode를 이용합니다. xcodeproj로 열어도 제대로 앱 빌드가 되지 않습니다. 혹여나 sourcemap문제가 자주 발생한다면 자신이 다른 프로젝트 파일을 열지 않았나 확인해야 합니다.)
3. main.jsbundle 없다는 오류는 다음의 명령어로 생성(package.json에 등록하자.)
npx react-native bundle --minify --entry-file='index.js' --bundle-output='./ios/main.jsbundle' --assets-dest='./ios' --dev=false --platform='ios'
4. 3의 명령어를 쓰면 asset과 bundle 된 파일 2개가 나오는데 copy bundle resources에 반드시"add other"로 추가한다.
(위 사진에는 main.jsbundle만 있는데 asset도 동일하게 추가, + -> add other 하면 된다.)
일단 이 방법을 이용하면 5번에서 release 모드로 세팅하지 않았을 경우 asset이 제대로 로딩되는 것을 확인할 수 있었다.
5. release build / debug build 전환을 위해서는 다음 메뉴를 쓴다.
이 안에서 메뉴를 뒤지다 보면 딱봐도 debug -> release로 변경가능한 것이 있다.
6. 문제는 갑자기 비슷한데 다른 오류가 발생해서 glb파일로의 접근을 막았다.
release 빌드를 했을 때, 이들이 asset을 찾는 경로는 완전히 바뀐다. 그게 뭘 의미하는 지는 모르겠지만 경로에 expo_internal이 포함되어 있고, 해싱된 .glb파일의 이름과 정확히 같은 게 eas update를 하면 생긴다는 것도 알아냈다. app.json에
"assetBundlePatterns": [
"**/*.glb"
],
이런 걸 추가했는데... 그 이후로 eas update를 해서 생긴 dist 폴더의 assets안에 이거랑 정확히 같은게 생겼다. 다만 이게 xcode빌드에 영향을 줄 것 같진 않다만 단서는 나왔다.
그리고 예상치 못하게 새로운 스택에 관련한 단서를 하나 더 얻어냈다.
expo를 이용한다면 native 코드, app config와 app icon 등을 제외한 핵심 js 코드를 업데이트 시키는 것이 가능하다는 것이다. 맨날 스토어에서 다시 배포를 시키기 보다는 다시금 publish만 해서 사용자들의 코드를 수정해 줄 수 있다면 복잡함이 훨신 줄어들 것이다. 정말 아예 바뀌는건 모르겠지만.
이걸 알아낸건 좋은데... 어떻게 asset를 제대로 로드할 수 있을까...
7. 이후 앱 배포가 가능하다.
https://reactnative.dev/docs/publishing-to-app-store
'일지 > 헬키' 카테고리의 다른 글
헬키 개발일지 8. 2024 06 29 React의 복잡한 hooking (0) | 2024.06.30 |
---|---|
헬키 개발일지 7. 2024 06 26 React Native + Expo 앱 배포 방법 정리 (0) | 2024.06.27 |
[Node.js] 헬키 개발일지 5. backend schema 확인과 endpoint 만들기 (0) | 2024.05.11 |
[React-native + Web] 헬키 개발일지 4. CI 파이프라인 완성, 간단한 테스팅 (0) | 2024.05.11 |
[React-native + Web] 헬키 개발일지 3. HTTPS + 배포 도전기 2 (2) | 2024.05.07 |