Monday, June 12, 2023

VSCode에서 Flutter 앱 빌드 시 외부 설정값 주입하기

Flutter에서 빌드 시 외부 설정값 주입 방법

이 포스트에서는 Flutter에서 빌드 시 외부 설정값을 주입하는 방법을 설명합니다. 가장 보편적인 방법은 --dart-define 옵션을 사용하는 것입니다. 이 옵션은 Dart 변수를 정의하고 값을 할당하는 데 사용됩니다.

--dart-define 옵션의 활용

--dart-define 옵션은 Dart 변수를 정의하고 값을 전달하는 데 사용됩니다. 아래 예제에서는 version이라는 Dart 변수를 정의하고 현재 날짜와 시간 정보를 값으로 전달하는 과정을 보여줍니다.

flutter build apk --profile --dart-define=version=`date +%d_%H:%M:%S`

Dart 코드에서는 다음과 같이 String.fromEnvironment() 함수를 사용하여 해당 값을 참조할 수 있습니다:

String.fromEnvironment("version")

`launch.json` 파일을 이용한 자동화

`--dart-define` 옵션에 매번 값을 입력하는 것은 번거로울 수 있습니다. 이럴 때 Visual Studio Code의 `launch.json` 파일을 활용하면 이 과정을 자동화할 수 있습니다.


{
    "version": "0.2.0",
    "configurations": [
      {                	
        "name": "Flutter build apk with version",                    
        "request": "launch",                    
        "type": "dart",                    
        "program": "..\\lib\\main.dart",                    
        "flutterMode":"profile",           	            
        "toolArgs" : ["--dart-define=version=`date +%d_%H:%M:%S`"]
        }
    ]
}

`toolArgs` 배열에 `--dart-define=version=date +%d_%H:%M:%S` 옵션을 추가하면, 빌드 시마다 자동으로 값을 입력하게 됩니다.

Dart 코드에서 빌드 환경 변수 사용하기

Dart 코드에서는 `String.fromEnvironment()` 함수를 사용하여 앞서 정의한 `version` 값을 참조할 수 있습니다:


static const version = String.fromEnvironment("version", defaultValue: '');

이렇게 정의한 `version` 변수는 앱 내에서 다양하게 활용될 수 있습니다. 예를 들어, About 페이지에 앱 버전명을 표시하는 데 사용할 수 있습니다.


0 개의 댓글:

Post a Comment