플러터:배포(안드로이드)
플러터(Flutter)로 개발한 애플리케이션을 안드로이드(Android) 환경에서 배포하기 위해서는 릴리즈 빌드 생성, 서명(Signing), Google Play Console 등록 등의 과정을 거쳐야 한다.
다음 항목들이 준비되어 있어야 한다.
| 항목 | 설명 | 비고 |
|---|---|---|
| 플러터 환경 확인 | flutter doctor 에서 안드로이드와 관련한 모든 항목이 초록 체크(✓) 상태여야 한다. | 아마 이미 되어 있겠지만.. |
| 계정 |
|
안드로이드 앱은 고유한 패키지명을 가진다.
형식:
com.example.myapp
확인 및 수정 위치:
android/app/build.gradle
defaultConfig { applicationId "com.example.myapp" }※ Google Play에 한 번 등록한 패키지명은 변경할 수 없다.
표시되는 앱 이름은 다음 파일에서 설정한다.
android/app/src/main/res/values/strings.xml
<string name="app_name">My App</string>
안드로이드 앱은 반드시 서명된 APK 또는 AAB 파일로 배포해야 한다.
다음 명령으로 키스토어를 생성한다.
keytool -genkey -v -keystore my-release-key.jks \ -keyalg RSA -keysize 2048 -validity 10000 \ -alias my-key-alias
my-release-key.jks 파일은 반드시 안전하게 보관해야 한다.
키 분실 시 앱 업데이트가 불가능해진다.
키 정보를 별도 파일로 관리한다.
android/key.properties
storePassword=비밀번호 keyPassword=비밀번호 keyAlias=my-key-alias storeFile=my-release-key.jks
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file("key.properties")
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}Google Play 권장 방식이다.
flutter build appbundle
생성 위치:
build/app/outputs/bundle/release/app-release.aab
flutter build apk --release
https://play.google.com/console
1회 등록비 결제 필요
앱 이름 입력 기본 언어 선택 앱 또는 게임 선택 무료/유료 여부 선택
필수 입력 항목:
앱 설명 (짧은 설명 / 자세한 설명)
앱 아이콘 (512×512)
스크린샷
개인정보처리방침 URL
처음 배포 시 내부 테스트를 권장한다.
경로:
테스트 → 내부 테스트 → 새 버전 만들기
AAB 파일 업로드
테스터 계정 등록
실제 기기에서 설치 테스트 가능
모든 검토가 끝난 후 프로덕션으로 배포한다.
심사 소요 시간: 수 시간 ~ 수일
정책 위반 시 반려 가능
버전은 다음 두 값으로 관리한다.
version: 1.0.0+1
1.0.0 : 사용자에게 보이는 버전
+1 : 내부 빌드 번호 (업데이트 시 반드시 증가)
- 릴리즈 키 분실 금지
- 패키지명 변경 불가
- 광고 사용 시 광고 ID 및 정책 명시 필요