Flutter

안드로이드 배포파일 만들기

hamiric 2024. 12. 23. 16:03

안드로이드 배포파일은 어디에 쓰이나?

안드로이드 배포파일은 구글 플레이스토어에 어플리케이션을 올리기 위해서 필요하다.

 

  • 서명할 파일 (JKS) 만들기

JKS (JAVA KeyStore)는 자바에서 사용하는 키 저장소 파일로써, 주로 안드로이드 앱 배포 및 디지털 서명을 위해 사용된다.

JKS 파일은 앱의 무결성을 보장하고, 앱이 신뢰할 수 있는 개발자에 의해 만들어졌다는 인증파일이라고 생각하면 된다.

 

Mac 일 경우

// Terminal
keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA \
        -keysize 2048 -validity 10000 -alias upload

 

Window 일 경우

// Terminal
keytool -genkey -v -keystore upload-keystore.jks `
        -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 `
        -alias upload

 

비밀번호 의외 나머지는 공란이어도 상관없음 (비밀번호는 필수!!)

 

 

프로젝트 루트에 upload-keystore.jks 파일 생성된것 확인!

 

그리고 반드시 해당 파일을 .gitignore에 추가!!

 

  • key.properties 파일 만들기

android/key.properties 파일 생성

나중에 안드로이드 앱을 빌드할때, 해당 파일에 있는 keystore 정보들을 읽어와서 앱을 서명하고 빌드를 하게 된다.

// android/key.properties 내용 작성
// password는 jks 파일을 생성했을때 입력했던 비밀번호여야 한다!
storePassword=123123
keyPassword=123123
keyAlias=upload
storeFile=../../upload-keystore.jks

 

  • build.grade 수정하기

android/app/build.grade 파일 수정이 필요

// key.properties 불러오기
// android {} 위에 코드 추가
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

...

// 서명 설정_1
// android {} 내부에 코드 추가
signingConfigs {
    release {
        keyAlias = keystoreProperties['keyAlias']
        keyPassword = keystoreProperties['keyPassword']
        storeFile = keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
        storePassword = keystoreProperties['storePassword']
    }
}

// 서명설정_2
// app이 릴리즈모드로 적용이 되도록 설정
signingConfig = signingConfig.release

(코드 위치 확인)

 

  • AndroidManifest.xml 에 인터넷 권한 추가

android/app/src/main/AndroidManifest.xml 파일에 권한 추가

안드로이드 릴리즈 모드에서는 인터넷 권한이 추가되어야 인터넷을 사용할 수 있게 된다.

<uses-permission android:name="android.permission.INTERNET"/>

 

### 디버그 모드에서는 해당 코드가 미리 추가되어 있다는 것을 확인할 수 있다.

android/app/src/deBug/AndroidManifest.xml 을 확인해보면 알 수 있다..

 

  • 배포파일 만들기

위의 작업이 모두 완료되었다면, 배포파일을 만들 수 있다.

배포파일은 크게 APK 파일과 AppBundle 의 두가지 종류로 나누어진다.

 

  • APK 파일 만들기
// Terminal
flutter build apk --release

 

  • AppBundle 만들기
// Terminal
flutter build appbundle --release

 

각각 명령어 이후, 생성된 파일 위치를 확인할 수 있다.