플러터:배포(안드로이드): 두 판 사이의 차이
보이기
새 문서: == 개요 == 플러터(Flutter)로 개발한 애플리케이션을 안드로이드(Android) 환경에서 배포하기 위해서는 릴리즈 빌드 생성, 서명(Signing), Google Play Console 등록 등의 과정을 거쳐야 한다. == 사전 준비 == 다음 항목들이 준비되어 있어야 한다. {| class="wikitable" !항목 !설명 !비고 |- |플러터 환경 확인 |flutter doctor 에서 안드로이드와 관련한 모든 항목이 초록 체크(✓) 상태여야... |
잔글 →앱 이름 |
||
| 21번째 줄: | 21번째 줄: | ||
== 앱 정보 설정 == | == 앱 정보 설정 == | ||
{| class="wikitable" | |||
!항목 | |||
안드로이드 앱은 고유한 패키지명을 가진다. | !설명 | ||
!비고 | |||
|- | |||
|앱 패키지명 (Application ID) | |||
| | |||
* 안드로이드 앱은 고유한 패키지명을 가진다. | |||
* android/app/build.gradle 에서 defaultConfig { applicationId "com.example.myapp" } 변경 | |||
android/app/build.gradle | |※ Google Play에 한 번 등록한 패키지명은 변경할 수 없다. | ||
|- | |||
|앱 이름 | |||
| | |||
* android/app/src/main/res/values/strings.xml 에서 설정 | |||
※ Google Play에 한 번 등록한 패키지명은 변경할 수 없다. | * <string name="app_name">My App</string> 내용을 변경하면 됨. | ||
| | |||
|- | |||
|아이콘 | |||
| | |||
* android/app/src/main/res/ 에서 mipmap으로 시작하는 폴더들을 새로운 폴더로 대체. | |||
|https://appicon.co/ 에서 기기에 맞는 앱 아이콘으로 변환 가능. | |||
|} | |||
== 릴리즈용 키 생성 == | == 릴리즈용 키 생성 == | ||
2026년 1월 13일 (화) 13:46 기준 최신판
플러터(Flutter)로 개발한 애플리케이션을 안드로이드(Android) 환경에서 배포하기 위해서는 릴리즈 빌드 생성, 서명(Signing), Google Play Console 등록 등의 과정을 거쳐야 한다.
다음 항목들이 준비되어 있어야 한다.
| 항목 | 설명 | 비고 |
|---|---|---|
| 플러터 환경 확인 | flutter doctor 에서 안드로이드와 관련한 모든 항목이 초록 체크(✓) 상태여야 한다. | 아마 이미 되어 있겠지만.. |
| 계정 |
|
| 항목 | 설명 | 비고 |
|---|---|---|
| 앱 패키지명 (Application ID) |
|
※ Google Play에 한 번 등록한 패키지명은 변경할 수 없다. |
| 앱 이름 |
|
|
| 아이콘 |
|
https://appicon.co/ 에서 기기에 맞는 앱 아이콘으로 변환 가능. |
안드로이드 앱은 반드시 서명된 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 및 정책 명시 필요