본문 바로가기
Language & Framework/Dart & Flutter

[Flutter] --dart-define 옵션 사용법

by 6cess 2023. 12. 10.

--dart-define 옵션이란?

이 설정을 통해 사용자 정의 변수를 정의하고 런타임 시 동적으로 사용할 수 있도록 하는 옵션. 

런타임의 환경에 따라 서버 엔드포인트를 변경하거나 로깅 레벨을 조정하거나 배포 환경을 설정하는 등의 목적으로 사용할 수 있다.

사용법

실행(빌드) 명령 뒤에 --dart-define=변수명=값 추가

flutter run --dart-define=변수명=값

ex) api 서버 엔드포인트를 설정할 경우
flutter run --dart-define=API_URL=https://dev.api.com

ex) debug / production 빌드 환경을 구분하여 id 입력 
flutter run --dart-define=FIREBASE_PROJECT_ID=your_debug_project_id
flutter build apk --dart-define=FIREBASE_PROJECT_ID=your_production_project_id

 

코드에서 String.fromEnvironment 메서드 사용하여 명령어 옵션에 입력한 값을 가져올 수 있다. 컴파일 타임에 값을 불러올 수 있기 때문에 const 키워드를 사용하는 것을 추천.

const String apiUrl = String.fromEnvironment('API_URL', defaultValue: 'https://default.api.com');

const String FIREBASE_PROJECT_ID = String.fromEvironment('FIREBASE_PROJECT_ID');

 

api url, project id, 등과 같이 프로젝트 단위, 배포 환경 단위별로 다른 값을 소스코드로 가져와 사용해야 할 때 사용.