안드로이드
실제기기 연결
설정 -> 휴대전화 정보 -> 소프트웨어 정보 -> 빌드 번호 (여러번 클릭하면) 개발자 모드로 전환이된다.
전환이 완료가 되면, 옵션에 개발자 옵션이 생긴다. 이때, usb 디버깅을 꼭 켜줘야한다.
이제 안드로이드 Sdk 폴더에서 platform-tools 를 찾아내서 터미널에서 이 폴더로 들어가준다.
adb devices 명령어를 사용하면 디바이스가 검색된 것을 알 수 있다.
기기 포트를 변경한다.
vscode에서 metro를 켜주고 원래하던데로 react-native run-android 해주면 실제기기에서 실행이 된다.
안드로이드 적장 물리쳤다!
들어가기에 앞서 참고한 자료들이다.
https://hazel-developer.tistory.com/34
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/
https://alpoxdev.tistory.com/18
그리고 아이폰 실제기기 테스트가 오래걸린이유는
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 |