Fronted

[React-Native] 배포 전 디버그, 릴리즈 apk 파일 생성하는 방법

성코 2024. 4. 26. 14:51

회사 프로젝트와 예전 외부 프로젝트 소스를 분석하면서 apk 파일 만드는 방법이 달라 까먹을까봐 기록용으로 작성한다. 


1. 프로젝트 하위 /android/app/build.gradle 파일에서 versionCodeversionName 배포 버전에 맞게 수정

 

2. 프로젝트 단의 터미널에서 아래 명령어 실행

//프로젝트 폴더에 index.js가 있는 경우에만
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
cd android
//디버그 apk
./gradlew assembleDebug

//릴리즈 apk
./gradlew assembleRelease

 

3. 안드로이드 스튜디오에서 프로젝트 열기 (프로젝트 하위 android 폴더를 열여줘야함)

 

4. File > Sync Project with Gradlew Files 실행

 

5. 프로젝트 경로 하위의 /android/app/src/main/res 폴더로 가서 아래 폴더들은 전부 삭제한다.

  1. drawable-hdpi
  2. drawable-mdpi
  3. drawable-xhdpi
  4. drawable-xxhdpi

drawable 폴더와 xxxhdpi 외에는 전부 지워야한다. 남아있으면 apk/aab 파일 생성시에 파일 중복으로 에러 발생.

xxxhdpi 폴더를 남기는 이유는 해당 폴더 내에 존재하는 Splash 파일이 없으면 구형 모바일에서 해상도에 맞는 Splash 파일이 없어 에러가 발생한다고 한다.

 

6. Build > Generate Signed Buildle of APK 클릭

 

7. APK 선택 (배포에는 Android App Bundle 선택)

 

8. Key store path에 해당하는 keystore 파일을 선택하고 키 스토어 패스워드와 alias, 키 패스워드를 입력한다.

키에 대한 정보가 없는 경우, 프로젝트 하위 /android/app 폴더에 build.gradle에 키에 대한 정보를 확인할 수 있다.

 

9. Build Variants에서 debug의 경우 > debug, release의 경우 > release를 선택하고 Create

 

10. 작업이 끝나면 

debug의 경우, 프로젝트 하위 /android/app/build/outputs/apk/debug에서 apk파일이 생성된다.

release의 경우, /android/app/release에 apk파일이 생성된다.