플러터 앱 배포, 이것만 알면 구글 플레이 스토어가 열린다
밤샘 코딩 끝에 멋진 플러터(Flutter) 앱을 완성하셨나요? 축하드립니다! 하지만 진짜 고비는 지금부터입니다. 생소한 디지털 서명부터 구글 콘솔의 복잡한 설정까지 마주하면 "코딩보다 배포가 더 어렵다"는 말이 절로 나오죠.
시니어 개발자의 시선에서 여러분이 겪을 시행착오를 절반으로 줄여줄 안드로이드 배포 핵심 포인트 6가지 를 정리해 드립니다.
1. 아이콘 제작, 일일이 '노가다'하지 마세요
안드로이드의 다양한 해상도(hdpi, xxhdpi 등)에 맞춰 아이콘을 수동으로 자르는 건 매우 비효율적입니다. flutter_launcher_icons 패키지로 이 과정을 자동화하세요.
- 준비물: 배경 없는 192x192 이상의 PNG 파일.
- 설정:
pubspec.yaml에 경로 설정을 마친 후 아래 명령어를 실행하세요.
# 패키지 반영 및 아이콘 생성
flutter pub get
flutter pub run flutter_launcher_icons:main체크포인트: 실행 후
AndroidManifest.xml의android:icon속성이 생성된 파일명과 일치하는지 꼭 확인하세요!
2. 업로드 키(Upload Key)의 비밀과 설정법
구글 플레이 스토어는 보안을 위해 '디지털 시그니처' 를 요구합니다. 구글은 보안성이 높은 업로드 키(Upload Key) 방식을 권장합니다.
실무적인 팁으로, 키스토어(Keystore)와 키(Key)의 비밀번호를 동일하게 설정하면 관리가 훨씬 수월합니다. 생성 후에는 android/key.properties 파일을 만들어 정보를 연결해야 합니다.
# android/key.properties 예시
storePassword=your_password
keyPassword=your_password
keyAlias=upload
storeFile=/path/to/your/upload-keystore.jks3. 버전 관리의 수학: 1.0.0+1의 의미
pubspec.yaml의 버전 정보는 단순한 숫자가 아닌 스토어의 엄격한 규칙입니다.
- 버전 코드(Version Code):
+뒤의 숫자(예:1). 반드시 정수 여야 하며, 업데이트 시 이전보다 무조건 높아야 업로드 에러를 피할 수 있습니다. - 버전 네임(Version Name):
+앞의 숫자(예:1.0.0). 유저에게 보여지는 문자열 로 자유롭게 설정 가능합니다.
4. 패키지명 중복 해결을 위한 '치트키'
전 세계에서 내 앱을 식별하는 Application ID(패키지명) 를 수동으로 고치다간 실수가 발생하기 쉽습니다. change_app_package_name 패키지를 사용하면 명령어 한 줄로 해결됩니다.
flutter pub run change_app_package_name:main com.new.package.name변경 후에는 android/app/build.gradle의 defaultConfig 섹션에서 ID가 잘 반영되었는지 확인하는 습관을 들이세요.
5. 결제 후 마주하는 복병: 신분 확인(Identity Verification)
가입비 25달러를 결제했다고 끝이 아닙니다. 콘솔 상단의 'Verify Identity' 를 통해 여권이나 신분증 사진을 업로드해야 최종 배포 권한이 생깁니다.
- Senior Tip: 신분 확인 승인까지 시간이 걸리므로, 그동안 대시보드에서 앱 설명과 그래픽 이미지 등 스토어 등록 정보(Store Listing) 를 미리 작성해두면 시간을 벌 수 있습니다.
6. 법적 골칫덩이 '개인정보처리방침' 해결하기
모든 앱은 '개인정보처리방침(Privacy Policy)' 이 필수입니다. 자신의 앱에 맞는 정책 URL을 반드시 준비하세요. vercel등을 활용하여 Static Site를 생성하여 URL을 제공할 수 있습니다.
마무리하며
앱 배포는 단순히 파일을 올리는 것이 아니라, 내 결과물이 세상과 소통하기 위해 '자격'을 갖추는 과정입니다. 오늘 살펴본 6가지 포인트를 체크리스트 삼아 차근차근 진행해 보세요.
여러분의 멋진 앱이 구글 플레이 스토어에서 유저들을 만날 준비가 되었나요? 지금 바로 첫 번째 업로드를 시작해 보세요. 응원합니다!
