본문 바로가기
Flutter

[Flutter] 안드로이드 앱 배포하기

by whoyoung90 2023. 5. 25.
반응형

Flutter에서 하이드리드 앱 개발시

구글 플레이스토어에 비해 iOS 앱스토어에 배포하는 방법은 비교적 간단했다.

 

iOS 앱스토어 배포는 따로 키를 서명할 필요없이

xcode에서 Product > Archieve 해주고 Distributed App을 누른 뒤, AppStoreConnect에 업로드해주면 끝난다.

물론 Archieve를 누르기 전까지 여러가지의 에러 상황이 있었지만.. 에러 상황은 따로 기록해두기로..!

 

앱 아이콘(런치 아이콘) 등록 관련 내용은 여기선 생략!

이제 구글 플레이스토어 배포 과정을 살펴보자~

 

> (안드로이드) 앱에 디지털 서명하기

Google Play 스토어에 출시하기 위해서는 반드시 앱에 디지털 서명을 해야한다.

 

1. KeyStore 만들기

2. 앱으로부터 KeyStore참조하기

3. Gradle에서 서명구성하기 

 

1. KeyStore 만들기

하나의 키스토어로 여러 앱을 출시 할 수 있지만, 앱마다 각각 해주는 게 좋을 것 같아 새로 만들어주었다.

https://www.masterqna.com/android/39280

https://stackoverflow.com/questions/53516201/can-we-use-the-same-signing-key-for-two-different-android-apps

 

아래 명령어를 사용해서 key를 먼저 생성해준다.

// mac
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

 

물어보는 질문에 모두 대답하고 마지막에 y를 적어주면, key.jks 파일이 만들어진 경로를 알려주고 끝난다.

 

2. 앱으로부터 Keystore 참조하기

android > app 경로에 key.jks 파일을 넣어주고,

android > app 경로에 keystore 참조에 대한 구성을 담은 key.properties 파일을 생성해서 아래와 같은 코드를 입력하면 된다.

storePassword=<키생성시 입력한 암호>
keyPassword=<키생성시 입력한 암호>
keyAlias=key
storeFile=./key.jks

android/app 경로

 

공식문서에는 key.properties 파일을 개인적으로 보관하고 공개된 저장소에 업로드하지 않도록 적혀있으므로,

해당 파일을 android > .gitignore에 추가해주면 된다.

android/.gitignore

 

3. Gradle에서 서명 구성하기

앱의 서명을 구성하기 위하여 android > app > build.gradle을 수정해줄 차례이다.

 

첫번째, android { ... } 위에 아래의 코드를 추가해서 keystore 정보를 가져올 수 있도록 해준다.

   def keystoreProperties = new Properties()
   def keystorePropertiesFile = rootProject.file('app/key.properties')
   if (keystorePropertiesFile.exists()) {
       keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
   }
   
   android { ...

 

두번째, buildTypes 블럭을 아래 코드로 대체해준다. (debug -> release)

   signingConfigs {
       release {
           keyAlias keystoreProperties['keyAlias']
           keyPassword keystoreProperties['keyPassword']
           storeFile file(keystoreProperties['storeFile'])
           storePassword keystoreProperties['storePassword']
       }
   }
   
   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }

 

이렇게하면 앱의 release 빌드에서 자동으로 서명이 된다!

 

4. 빌드 구성 검토하기 

공식 문서에서 검토하라고 한 것들을 검토해준다.

 

5. release 앱 번들 빌드하기

터미널을 열고 android 경로로 이동해서 아래 명령어로 appbundle을 빌드해준다.

flutter build appbundle

 

 

앱의 릴리즈 번들은 (app-release.abb)
플러터 프로젝트/build/app/outputs/bundle/release  path에 생성된다.

 

6. 앱을 Play Console에 업로드

플레이스토어 콘솔에 app-release.abb파일을 직접 업로드하면 끝!

app-release.abb파일을 업로드시 디버그 기호를 업로드 하라는 경고 문구가 뜰텐데 아래 링크를 보고 하면 된다.

https://whoyoung90.tistory.com/90

 

 

[참고 URL]

https://eunjin3786.tistory.com/295

https://jacobko.info/flutter/flutter-12/

 

반응형

댓글