실전
Android 배포
Android 앱을 빌드하고 Google Play 출시를 준비합니다.
핵심 개념
Android 배포 주요 항목
릴리즈 준비
applicationId는 앱의 고유 식별자이며 출시 후 변경이 어렵습니다.
언제 쓰나: 릴리즈 빌드는 서명 설정이 필요합니다.
Flutter에서: versionCode와 versionName으로 업데이트 버전을 관리합니다.
Card(
child: Padding(
padding: const EdgeInsets.all(16),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: const [
Text('릴리즈 준비', style: TextStyle(fontWeight: FontWeight.bold)),
SizedBox(height: 8),
Text('applicationId는 앱의 고유 식별자이며 출시 후 변경이 어렵습니다.'),
],
),
),
)
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'릴리즈 준비',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
)
],
),
)
릴리즈 준비
스토어 준비
앱 아이콘, 스크린샷, 설명, 카테고리, 개인정보 처리방침을 준비합니다.
언제 쓰나: 권한 사용 이유와 데이터 처리 방침은 스토어 심사에서 중요합니다.
Flutter에서: 내부 테스트 트랙으로 먼저 설치와 업데이트 흐름을 검증합니다.
flutter build appbundle --release
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter build appbundle --release
Built build/app/outputs/bundle/release/app-release.aab')
],
)
],
),
)
실행 출력
$ flutter build appbundle --release
Built build/app/outputs/bundle/release/app-release.aab
확장 개념
Android 출시 준비
- Google Play 제출에는 release 빌드, 앱 서명, versionCode/versionName 관리가 필요합니다.
- 권한 설명, 개인정보 처리, 스토어 등록정보를 앱 기능과 맞춰 작성해야 합니다.
- App Bundle은 Play Store 배포에 권장되는 Android 릴리스 산출물입니다.
코드
예제
flutter build appbundle --release
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter build appbundle --release
Built build/app/outputs/bundle/release/app-release.aab')
],
)
],
),
)
실행 출력
$ flutter build appbundle --release
Built build/app/outputs/bundle/release/app-release.aab
다음 단계
실습 체크리스트
패키지명 확정서명 설정앱 번들 빌드스토어 메타데이터 준비
- 출처세부 기준과 최신 변경 사항을 확인할 수 있습니다.
- Flutter API Reference클래스, 메서드, 생성자 세부 정의를 확인합니다.
- Flutter deployment플랫폼별 출시 문서의 출발점입니다.