본문 바로가기
Dart (Flutter)

[Flutter] How to Deploy Flutter App to the Google Store

by llHoYall 2023. 4. 18.

이번 포스팅에서는 Flutter로 만든 앱을 구글 스토어에 배포하는 방법에 대해 살펴보겠습니다.

Setting the Bundle ID

직접 변경하는 방법도 있긴 하지만, 플러그인의 도움을 받아보겠습니다.

pubspec.yaml 파일에 플러그인을 명시해줍니다.

dev_dependencies:
  flutter_test:
    sdk: flutter

  ...
  change_app_package_name: 1.1.0

프로젝트에 반영해 줍니다.

$ flutter pub get

이제 다음의 명령어를 이용하여 Bundle ID를 변경해 줍니다.

$ flutter pub run change_app_package_name:main {BUNDLE ID}

Setting the App Version and Build Number

다음으로 앱 버전과 빌드 넘버를 설정해 줍니다.

배포할 때마다 꼭 이 부분을 체크해주세요.

pubspec.yaml 파일에서 version으로 명시된 부분을 변경해 주시면 됩니다.

version: 1.0.0+1

+ 앞쪽은 기존에 사용하시던대로 semantic versioning을 명시하시면 되고, + 뒷쪽에 build number를 명시해 주시면 되요.

몇 번째 build인지를 명시하는 것으로 사용자에겐 보이지 않으며, 프로젝트를 등록할 때 이 숫자가 같으면 업데이트되지 않습니다.

Build할 때마다 하나씩 증가시켜주시면 되요.

Generating and Registering Key

먼저, JRE가 필요하므로 설치를 해줍니다.

https://www.java.com/ko/download/

 

다음으로, 다음의 명령어를 사용하여 key 파일을 생성해 줍니다.

MAC

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

Windows

$ keytool -genkey -v -keystore %userprofile%\upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload

-keystore 옵션이 key의 생성 경로이므로, key 위치를 바꾸고 싶으시면 이 부분을 조절하시면 되요.

질문에 대해 각자의 상황에 맞게 답을 하시면 생성이 완료됩니다.

 

이제 생성한 key를 프로젝트에 등록해 줍니다.

android 폴더에 key.properties 파일을 생성합니다.

storePassword=
keyPassword=
keyAlias=upload
storeFile=<PATH>/upload-keystore.jks

Password에는 Key를 만들때 입력한 비밀번호를 넣어주시면 되요. PATH 부분도 각자의 경로를 넣어주시면 되고요.

 

만든 파일을 android/app/build.gradle에 설정해 줍니다.

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

android {
    ...
    signingConfigs {
        release {
            storePassword keystoreProperties['storePassword']
            keyPassword keystoreProperties['keyPassword']
            keyAlias keystoreProperties['keyAlias']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}

Creating App Bundle

앱의 이름은 android/app/src/main/AndroidManifest.xml에서 설정해 줄 수 있습니다.

<manifest ...>
    <application
        android:label=""
        ...
    </application>
</manifest>

android:label에 명시를 해주면 됩니다.

 

이제 다음의 명령어로 앱 번들을 생성합니다.

$ flutter build appbundle

build/app/outputs/bundle/release/app-release.aab 파일이 생성되셨을 겁니다.

이제 이 파일을 다음의 사이트에서 본인의 개발자 계정을 사용하여 등록하고 배포하시면 되요.

구글 스토어의 경우 $25를 내고 개발자 계정을 등록하셔야 합니다.

https://play.google.com/console

Wrap Up

이번엔 앱 번들을 만들어 스토어에 배포하는 것에 대해 살펴보았습니다.

어렵지 않으니 따라하셔서 배포해 보시길 바래요. ^^

(개인적으로 개발자 계정 등록을 하지 않아서 실제로 배포하진 않고 있습니다.)

댓글