위어드섹터 공식 블로그

[ Flutter - Android / Google Play Console 에 업로드 하는 방법 ] 본문

Developing/App

[ Flutter - Android / Google Play Console 에 업로드 하는 방법 ]

위어드섹터 2022. 11. 1. 16:29

Android application을 

Google Play Console (https://play.google.com/intl/ko/console/about/ )

에 업로드하기 위해선 배포하려는 어플리케이션의 설치 파일을 Google Play Console에 업로드해야 합니다. 

 

오늘은 Flutter 프로젝트에서 aab 파일을 추출하는 방법을 적어보려 합니다. 다음은 aab 파일을 release 하기 위한 step 입니다. 



Step 1. 디지털 서명하기

 

 

 기존에는 안드로이드 앱을 배포하기 위해 upload key와 signing key를 모두 개발자가 관리하고 서명했었습니다. 하지만 해당 키를 분실하면 두 번 다시 업데이트를 할 수 없는 문제가 발생했습니다. 

 

 문제를 보완하고자, 2017년 5월부터 signing key는 google이 관리하는 방식이 도입되었습니다. 따라서 개발자는 앱에 upload key로 디지털 서명을 한 후 google play console에 업로드하면 됩니다. 

 

 혹시 키를 분실했다면 새 키를 만들고 https://support.google.com/googleplay/android-developer/contact/key 다음 링크에서 지원팀에 앱 인증과 관련된 파일인 upload_certificate.pem을 첨부하여 새 키로 재설정해달라고 요청하면 됩니다.

 

upload key를 발행하기 위해 다음 명령어를 cmd 창에 입력합니다. 

 

keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
 

여기서 ‘c:/Users/USER_NAME/’ 은 키를 보관할 경로를 뜻하고, -alias 뒤에 있는 key

에 key의 별칭을 저장합니다. 

 

여기서 keystore 파일을 생성하는데 keystore 시스템을 사용하면 암호화 키를 컨테이너에 저장하여 기기에서 키를 추출하기 어렵게 할 수 있습니다. 즉, 키 저장소에 키가 저장되면, 키 자료는 내보낼 수 없는 상태로 유지하면서 키를 암호화 작업에 사용할 수 있습니다. 




Step 2. 앱에서 keystore을 참조하기


앱에서 keystore을 참조하기 위해. <app dir>/android/key.properties 파일을 생성합니다. 

 

storePassword=<step1 에서 지정한 비밀번호>
keyPassword=<step1 에서 지정한 비밀번호>
keyAlias=<step1 에서 alias로 지정한 이름>
storeFile=<key store 파일 위치, 예) /Users/<user name>/key.jks>



Step 3. 앱의 서명을 release 파일 빌드시 입력해주기

 

<app dir>/android/app/build.gradle 파일에서 다음 코드를 추가합니다. 

 

android {

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

   
   // defaultConfig {} 아래에 추가.

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

  buildTypes {
      release {

           // signingConfig signingConfigs.debug 에서 다음과 같이 변경
          signingConfig signingConfigs.release


      }
  }

 

 

Step 4. aab 파일 추출하기

 

1. 앱 디렉토리로 이동합니다. (명령어: cd <앱의 디렉토리>)

 

2. 다음 명령어를 실행합니다. 

flutter build appbundle

앱의 aab 번들 파일은 <app dir>/build/app/outputs/bundle/release/app.aab 에 생성됩니다.




※ 주의사항 ※

 

google play console에 버전업을 위한 앱을 올릴 경우

 

버전명이 겹치면 안 됩니다. (버전명이 겹칠 경우, pubspec.yaml 파일에서 version 명을 변경하면 됩니다.)




 

 

출처:

https://flutter-ko.dev/docs/deployment/android

https://developer.android.com/studio/publish/app-signing?hl=ko

https://success206.tistory.com/160




 

 

 

블로그 구독자 문의 주소 : info@weirdsector.co.kr

그로스 해킹 파트너, LABBIT 바로가기

LABBIT을 운영하는 Team 위어드섹터 만나러 가기