Dart (Flutter)

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

llHoYall 2023. 4. 18. 11:34

이번 포스팅에서는 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

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

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

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

반응형