Flutter_Build(Flavor, Fastlane)
Flavor와 Fastlane은
앱을 빠르게, 실수 없이, 환경에 맞게 배포하기 위해
꼭 알아두면 좋은 기술입니다.
🍭 1. Flavor (플레이버) — “앱 환경을 구분하는 기술”
👉 플레이버는 하나의 앱을 여러 버전으로 나눠서 만들 수 있게 도와주는 기능입니다.
| 구분 | 하는 일 |
|---|---|
Dev (개발용) |
개발자가 테스트할 때 쓰는 앱 |
Staging (준비용) |
테스트 중인 버전, QA 팀이 확인용 |
Prod (운영용) |
진짜 사용자들이 쓰는 앱 |
→ 같은 앱이라도 이름, 아이콘, 서버 주소를 다르게 설정할 수 있어요!
💡 왜 필요한가?
실수 방지 + 테스트 편리
예: prod용 앱은 진짜 유저 데이터를 쓰고,
dev는 테스트용 서버를 쓰게 할 수 있어요.
📂 어떻게 씁니까?
lib/
main_dev.dart
main_prod.dart
flavors/
dev_config.dart
prod_config.dart
main_dev.dart: 개발용 앱 실행 진입점dev_config.dart: 개발용 설정들 (예: 테스트 서버 주소)
⚙️ Android 설정 (build.gradle)
flavorDimensions "app"
productFlavors {
dev {
dimension "app"
applicationIdSuffix ".dev" // 앱 ID에 .dev 붙임
resValue "string", "app_name", "MyApp Dev"
}
prod {
dimension "app"
resValue "string", "app_name", "MyApp"
}
}
⚙️ iOS 설정 (Xcode)
- Xcode에서 Scheme(스킴) 복제
.xcconfig파일로 dev/prod 설정 구분
🚀 2. Fastlane (패스트레인) — “배포 자동화 도구”
👉 앱을 iOS, Android에 자동으로 업로드하고
버전 번호도 자동으로 올려주는 도구예요!
📦 복잡한 앱 배포 작업을 “한 줄 명령어”로 끝낼 수 있어요.
💡 어떤 일을 합니까?
| 예시 | 설명 |
|---|---|
| 앱 빌드 | 코드 → 앱 파일로 만듦 (.apk, .ipa) |
| 스토어 업로드 | Play Store, App Store에 업로드 |
| 테스트 업로드 | Firebase App Distribution / TestFlight |
| 버전 관리 | 자동으로 버전 넘버 증가 |
🛠 예시
✅ Android (android/fastlane/Fastfile)
platform :android do
lane :deploy_dev do
gradle(task: "assembleDevRelease") # dev용 빌드
upload_to_play_store(track: 'internal') # 내부 테스트 업로드
end
end
✅ iOS (ios/fastlane/Fastfile)
platform :ios do
lane :beta do
build_app(scheme: "MyAppDev") # dev 스킴으로 빌드
upload_to_testflight # TestFlight로 업로드
end
end
🚀 실행 예시
fastlane deploy_dev # 안드로이드 dev용 빌드 + 업로드
fastlane beta # iOS dev용 빌드 + TestFlight 업로드
🧩 3. Flavor + Fastlane 함께 쓰면?
| 명령어 | 하는 일 |
|---|---|
fastlane deploy_dev |
dev 환경으로 앱 빌드 + 테스트 배포 |
fastlane deploy_prod |
운영용 앱을 앱스토어에 자동 업로드 |
📘 함께 알아두면 좋은 것들
| 기술 | 설명 |
|---|---|
.env + flutter_dotenv |
환경변수로 API 주소 관리 |
| Firebase App Distribution | 테스트 사용자에게 빠르게 배포 |
| GitHub Actions | Fastlane과 함께 자동 빌드하는 CI/CD 도구 |
🧠 비유로 정리!
- Flavor = “같은 음식(앱)을 매운맛/순한맛(환경)으로 나눠서 조리하는 것”
- Fastlane = “배달로봇처럼 앱을 자동으로 스토어나 테스트 사용자에게 전달하는 도구”
🧪 연습하고 싶다면
- Flutter 앱에서 dev/prod flavor 만들고
- Android에서
fastlane설정해서deploy_dev해보기