메뉴 건너뛰기

자료실

DATA

******* 안드로이드 어플 배포방법 ********

 

- expo bare 테스트 완료된 버전입니다.

- 바닐라 리액트네이티브에서도 먹습니다.

 

1. 우선 android/app/src/main/assets 폴더가 존재하지 않으면 생성 한다

 

2. 아래와 같은 명령어로 번들파일을 생성 한다

 

 

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/

 

 

3. Android Studio를 실행하여 몇가지 작업을 수행한다

- 만일, 다국어 지원을 경우 strings.xml 생성

- strings.xml에서 앱 이름을 변경

- 아이콘을 추가한 후 정보를 변경

- package 패스 변경 (아래 설명에 따라)

 

 

A. 소스에서 패키지명 일괄 변경 

 

   ex) package MY.APP.NEW_ID;

 

B. android/app/src/main/AndroidManifest.xml 파일에서 수정

  package="MY.APP.NEW_ID"

 

C. android/app/build.gradle 파일에서 수정

  applicationId "MY.APP.NEW_ID"

 

D. android/app/BUCK 파일에서 수정

  android_build_config(

    package="MY.APP.NEW_ID"

  )

 

  android_resource(

    package="MY.APP.NEW_ID"

  )

 

E. 마지막으로 android 폴더로 가서 CMD 실행 후 클린 작업 실행

  ./gradlew clean 

 

 

4. 만일 이렇게 작업 후에 다시 react-native 로 소스를 컴파일 하여 실행시에 오류가 발생할 수 있다. 그러면 android 폴더로 가서 CMD 실행 후 클린 작업 실행

 

 

./gradlew clean

 

+영준추가 

-> 콘솔에 오류값확인하고 체크하시는거 잊지마세요.

-> 릴리즈 뽑으실때 웹뷰주소 https 아니면 애러납니다.

 

5. 테스트용일때 -> 좀 빠르게 뽑고싶다면

-> 안드로이드 스튜디오 build -> build apk

{$해당어플이름}\android\app\build\outputs\apk\debug

에서 

app-debug.apk 다운 받아 배포하시면 됩니다.

 

6. [react-native] 안드로이드 signed apk 만드는 방법

 
A. 키스토어 생성

 

1
keytool -genkey --keystore <YOUR_KEYSTORE_NAME>.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
 
cs

 

 

B. 생성된 키스토어 파일을 android/app 경로 내에 넣음

 

 

C. gradles.properties에 다음 코드를 넣음

 

1
2
3
4
MYAPP_RELEASE_STORE_FILE=<YOUR_KEYSTORE_NAME>.keystore
MYAPP_RELEASE_KEY_ALIAS=my-key-alias
MYAPP_RELEASE_STORE_PASSWORD=<YOUR_PASSWORD>
MYAPP_RELEASE_KEY_PASSWORD=<YOUR_PASSWORD>
cs

 

 

D. app/build.gradle에 다음 코드를 넣음

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
...
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
        }
    }
}
...
cs

 

 

 

E. 다음 명령어를 통해 개발자 모드를 끈다.

 

1
2
3
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/
cs
 

E. 다음 명령어를 통해 release apk를 빌드한다.

 

 

1
cd android && ./gradlew assembleRelease
cs
 

F. app-release.apk 파일은 android/app/build/outputs/apk/release 경로에서 찾을 수 있다.

 

출처[ https://iam.holy.kiwi/6 ]

 

 

출처: 

https://blog.miyam.net/69 [낭만 프로그래머]