프론트엔드/ReactNative

(React Native) APK 추출

그린티_ 2024. 1. 16. 11:47
반응형
  1. 프로젝트의 android 디렉토리로 이동:
    • React Native 프로젝트의 루트 디렉토리에서 터미널을 열고 cd android 명령어를 사용하여 android 폴더로 이동합니다.
    • PS C:\\ReactNative_WebApp> cd android
      PS C:\\ReactNative_WebApp\\android> // 이렇게 됨
      
  2. 릴리즈 빌드를 위한 키스토어 생성:
    • 릴리즈 빌드를 위해서는 안드로이드 키스토어가 필요합니다. 키스토어를 생성하지 않았다면, 다음 명령어를 사용하여 생성할 수 있습니다:
    • // 기본 형태
      keytool -genkey -v -keystore [키스토어 이름.keystore] -alias [키 약어] -keyalg RSA -keysize 2048 -validity [유효한 일자]
      
      // 예시
      keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
      
    • 이 명령어를 실행하면 키스토어 파일(my-release-key.keystore)이 생성됩니다. 이 파일을 android/app 폴더 안에 넣어줍니다.
    • 입력 한 후에 cmd 창에 나타나는 내용을 입력 해줍니다.
      • (비밀번호는 칠 때 화면에 안나타나니 그냥 천천히 입력 하면 문제 없습니다.)
      • PS C:\\ReactNative_WebApp\\android> keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
        키 저장소 비밀번호 입력:  
        키 저장소 비밀번호가 너무 짧음 - 6자 이상이어야 합니다.
        키 저장소 비밀번호 입력:  
        새 비밀번호 다시 입력: 
        이름과 성을 입력하십시오.
          [Unknown]:  company
        조직 단위 이름을 입력하십시오.
          [Unknown]:  group
        조직 이름을 입력하십시오.
          [Unknown]:  name
        구/군/시 이름을 입력하십시오?
          [Unknown]:  now
        시/도 이름을 입력하십시오.
          [Unknown]:  now
        이 조직의 두 자리 국가 코드를 입력하십시오.
          [Unknown]:  KR
        CN=company, OU=group, O=name, L=now, ST=now, C=KR이(가) 맞습니까?
          [아니오]:  Y
        
        다음에 대해 유효 기간이 10,000일인 2,048비트 RSA 키 쌍 및 자체 서명된 인증서(SHA256withRSA)를 생성하는 중
                : CN=company, OU=group, O=name, L=now, ST=KR, C=KR
        [my-release-key.keystore을(를) 저장하는 중]
  3. gradle.properties에 키스토어 정보 추가:
    • 프로젝트의 android/gradle.properties 파일에 제일 밑에 키스토어 정보를 추가합니다:
    • MYAPP_RELEASE_STORE_FILE=my-release-key.keystore
      MYAPP_RELEASE_KEY_ALIAS=my-key-alias
      MYAPP_RELEASE_STORE_PASSWORD=******  // 내가 cmd 창에 적은 비밀번호
      MYAPP_RELEASE_KEY_PASSWORD=******    // 내가 cmd 창에 적은 비밀번호
  4. app/build.gradle에 서명 설정 추가:
    • android/app/build.gradle 파일을 열고 android 블록 안에 다음 서명 설정을 추가합니다:
    • android {
          ...
          defaultConfig { ... }
          signingConfigs {
              release {
                  if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                      storeFile file(MYAPP_RELEASE_STORE_FILE)
                      storePassword MYAPP_RELEASE_STORE_PASSWORD
                      keyAlias MYAPP_RELEASE_KEY_ALIAS
                      keyPassword MYAPP_RELEASE_KEY_PASSWORD
                  }
              }
          }
          buildTypes {
              release {
                  ...
                  signingConfig signingConfigs.release
              }
          }
      }
      
      
  5. APK 빌드:
    • 다시 터미널로 돌아가서 android 폴더에서 아래의 명령어를 실행하여 APK를 빌드합니다:
    • ./gradlew assembleRelease
    • 빌드 프로세스가 완료되면, 생성된 APK 파일은 android/app/build/outputs/apk/release/app-release.apk에 위치합니다.
  6. APK 테스트:
    • 빌드된 APK를 테스트하기 위해 이 파일을 안드로이드 디바이스에 설치하고 실행해보시면 됩니다.
반응형