안드로이드
실제기기 연결
설정 -> 휴대전화 정보 -> 소프트웨어 정보 -> 빌드 번호 (여러번 클릭하면) 개발자 모드로 전환이된다.
전환이 완료가 되면, 옵션에 개발자 옵션이 생긴다. 이때, usb 디버깅을 꼭 켜줘야한다.
이제 안드로이드 Sdk 폴더에서 platform-tools 를 찾아내서 터미널에서 이 폴더로 들어가준다.

adb devices 명령어를 사용하면 디바이스가 검색된 것을 알 수 있다.

기기 포트를 변경한다.

vscode에서 metro를 켜주고 원래하던데로 react-native run-android 해주면 실제기기에서 실행이 된다.
안드로이드 적장 물리쳤다!

들어가기에 앞서 참고한 자료들이다.
https://hazel-developer.tistory.com/34
RN(React Native) 빌드&테스트배포
대망의 파이널 프로젝트가 시작.... 진짜 DB에 mysql을 제외하고 모든 기술 스택을 새로운 것을 쓰는 이번 프로젝트에 진짜 영혼을 갈아넣었다고 봐도 무방.... 1차 프로젝트를 완벽하게 마무리하고
hazel-developer.tistory.com
[React Native] Android 배포용 빌드하기
어제 포폴용으로 만든 RN 앱을 리드 미까지 다 작성하고 나서 빌드도 해보고 싶단 생각이 들었다. 맥북이 없기 때문에.. 윈도우 데스크탑으로 안드로이드 빌드 시작!
velog.io
React-Native assembleRelease fails for task ':app:bundleReleaseJsAndAssets'
When I run ./gradlew assembleRelease build is failed with this error: Error:Execution failed for task ':app:bundleReleaseJsAndAssets. > A problem occurred starting process 'command 'node' I
stackoverflow.com
apk 파일 생성하기
위처럼 테스팅을 하기 위해서는 usb에 연결하고 vsc로 실행해야하는 번거로움이 있다.
apk파일로 앱을 설치만 하면 위 과정없이 앱을 다운로드 할 수 있다.
고로, 프로젝트가 완성이 되었다면 apk파일을 생성해서 배포를 준비해야한다.
안드로이드 서명키 생성
1. RN프로젝트 폴더 내에 android/app 폴더로 이동한다.
cd [your path]/android/app
2. 아래 명령어를 입력
keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
여기서 your_key_name과 your_key_alias을 원하는 이름으로 작성.
your_key_alias 은 나중에 앱에 서명 할 때 사용할 이름으로 따로 기록해두는게 좋다.
또 해당 키는 보안성이 좋아야 하기때문에 기본값 1024 대신 탈취하기 보다 어려운 2048로 변경한다.
3.

비밀번호를 입력하고, 꼭 기억해둬야한다. 이 비밀번호는 나중에 사용된다.
마지막 국가코드는 KR을 입력하면 된다.
프로젝트에 키 저장소 추가
my-upload-key.keystore 파일이 생성될 것이다. (위 과정에서 이름을 달리했다면 다른이름일 것이다.)
그냥 똑같이 따라하는게 속편할 듯 하다.
어디에 생성되는 지는 방금했는데 까먹었다;; 여튼 잘 찾아서 프로젝트에 넣어준다.


MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=*****
MYAPP_UPLOAD_KEY_PASSWORD=*****
android/gradle.properties에 위와 같이 코드를 수정해주고
android/app/build.gradle
에서 붉은색 부분을 파란색으로 바꾸어주면된다.


build 하기 : APK 파일로 만들어주기
프로젝트 폴더에서 android 폴더로 이동한 후 아래에 명령어로 빌드
cd android
./gradlew assembleRelease
근데 나는 오류가 생겼다.
./gradlew --stop
./gradlew assembleRelease
혹시 오류가 나시는 분은 위 코드로 실행해보시길 바란다.
Execution failed for task ':app:lintVitalRelease'.
> Lint found fatal errors while assembling a release target.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
또 다른 오류
* 해결방법
- Step 1. Build.gradle(:app)파일에서 다음 구문을 추가
android{
...
lintOptions {
checkReleaseBuilds false
abortOnError false
}
...
}
android\app\build\outputs\apk\release
그러면 위 경로에 apk 파일이 만들어져 있을 것이다.
이 파일 폰에 옮겨서 다운로드 하면 된다!

IOS
이제 아이폰에서 테스트를 해봐야하는데.. 고난길이 예상된다.
디바이스에서 테스트 하기 위해서는 애플 개발자 계정(Apple developer account)이 필요하다.
아이폰 실제기기 테스트 같은 경우에는 금요일이였는데 실패해서 월요일에 성공했다..
그래서 어떻게 했는지 기억은 잘 안나서 참고했던 자료를 올린다.
https://dev-yakuza.posstree.com/ko/react-native/ios-test-on-device/
iOS 디바이스 테스트
RN(react native)로 개발한 프로젝트를 iOS 디바이스에서 테스트해 봅시다.
dev-yakuza.posstree.com
https://alpoxdev.tistory.com/18
[iOS] 빌드 문제 - YogaKit/YogaKit.modulemap' not found
fatal error: module map file '/Users/rebekah/Library/Developer/Xcode/DerivedData/example-feduelzeswwgfqdrghxcxxfxavuz/Build/Products/Debug-iphonesimulator/YogaKit/YogaKit.modulemap' not found 여기..
alpoxdev.tistory.com
Xcode . 아이폰 USB 연결 하여 개발중 앱 실행 방법
개요 - Xcode 에서 아이폰을 실행타겟으로 하여 개발중인 앱을 아이폰 기기에서 직접 실행하기 위한 방법. - 맥북과 아이폰을 USB 연결하고 간단 설정으로 쉽게 달성된다. - Xcode 에서 개발중인 앱을
igotit.tistory.com
그리고 아이폰 실제기기 테스트가 오래걸린이유는
Command PhaseScriptExecution failed with a nonzero exit code
오류가 계속 생겼는데 이유는 메트로서버를 킬때 v16버전으로 돌아가는데, v17버전으로
xcode가 계속 실행해서 메트로 서버가 켜지지 않아서 생기는 오류였다.
그래서 해결 방법으로는 v17을 삭제했다..
'실습업무 > RN' 카테고리의 다른 글
[오류] 파이어베이스 푸쉬알람 리액트 네이티브 연동 (0) | 2022.03.28 |
---|---|
리액트 네이티브 Command PhaseScriptExecution failed with a nonzero exit code (0) | 2022.03.28 |
[오류] 리액트 네이티브 다른 컴퓨터에서 clone 할때 오류 (0) | 2022.03.25 |
웹뷰 참고자료 (0) | 2022.03.24 |
파이어베이스 데이터 갱신시 새로고침 (0) | 2022.03.22 |