개발환경 나누기 Flutter Flavor Configure

sunmkim·2023년 1월 11일
0

flutter

목록 보기
2/3

앱 개발 시 다양한 환경이 필요합니다
dev - 개발
staging - 테스트
production - 배포

아니 할게 얼마나 많은데 이런것 까지 하나요?

노우노우 앱이 배포되면 프로덕션에서 뭘하기 힘듭니다. 미래의 나를 위해서 하면 좋습니다.

Flavor란

환경마다 api 엔드포인트가 다르고, 앱아이콘을 다르게해서 구분이 편하게 할 수 있습니다.

flutter build --flavor development

공식문서 보고 싶으면 누르기

But !

저는 좀더 편한 방법을 사용해보겠습니다.

해외 Flutter 개발팀 Very good ventures 에서 이를 편리하게 할 수 있는 패키지를 제공합니다.
쑤아리

패키지 설치

dart pub global activate very_good_cli

프로젝트생성

very_good create --org-name com.example my_app_name

번들아이디는 com.example.my_app_name 으로 생성됩니다.

프로젝트 생성 후 lib 폴더를 보시면

lib/
  main_development.dart
  main_production.dart
  main_staging.dart

이렇게 메인 파일이 3개가 생성됩니다.

이제 프로젝트 시작시에

# Run development
flutter run --flavor development --target lib/main_development.dart
# Run staging
flutter run --flavor staging --target lib/main_staging.dart
# Run production
flutter run --flavor production --target lib/main_production.dart

이렇게 다른 메인 파일을 실행하는 것입니다.

ide로 실행하시는 분들도 많죠?

vscode 는 설정이 되어있습니다.

안드로이드 스튜디오 & 인텔리 제이는 구성편집에서 run command를 직접 설정해주세요

이거 환경 설정 정보는 어디서 보나요?
android - android/app/build.gradle
ios - xcode
에서 확인가능합니다.

파이어베이스 설정

flutterfire cli 를 사용하여 각 환경에 파이어베이스를 관리할수있습니다.

# dev (다른 환경도 동일)
flutterfire config \
  --out=lib/firebase_options_dev.dart \ 파이어 베이스 옵션 파일의 이름
  --ios-bundle-id=com.example.my_app_name.dev \
  --android-app-id=com.example.my_app_name.dev

dart define

각 환경마다 변수를 다르게 하고 싶으면 run 커맨드 옵션에서 dart-define 옵션을 사용하세요

# Run dev
flutter run --flavor development --target lib/main_development.dart --dart-define base_url=https://dev.velog_server.com
void main() {
	const baseUrl = String.fromEnvironment('base_url');
	log(baseUrl)
}
profile
Flutter / Swift

0개의 댓글