feat(flutter): 데이터 모드도 빌드할 때 지정하고 휴대폰 시험 빌드 절차 정리

빌드에는 개발자 PC 의 flutter/.env 가 asset 으로 묶여 들어가, 서버 주소는 덮어써도 데이터 모드는
그 .env 를 따랐다. --dart-define=DATA_MODE 로 정할 수 있게 하고 출시 명령에 넣는다.
운영 서버 전에는 PC 개발 서버(http)에 붙는 profile 빌드로 휴대폰에서 시험한다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-16 20:59:23 +09:00
parent 4f8e3f0b68
commit 19ee38a635
3 changed files with 27 additions and 4 deletions
+7 -1
View File
@@ -9,8 +9,14 @@ enum DataMode { api, local }
/// `.env` 에 API_URL 이 없을 때 — 호스트에서 띄운 개발 서버 (백엔드 글로벌 prefix /api 포함)
const String kDefaultApiUrl = 'http://localhost:3000/api';
/// `.env` 의 DATA_MODE (api | local). `.env` 를 읽지 않았으면(테스트) 기기 저장으로 둔다.
/// 빌드할 때 넘긴 데이터 모드 — `--dart-define=DATA_MODE=api|local`.
/// 빌드에는 개발자 PC 의 `.env` 가 그대로 묶이므로, 기기에 설치할 빌드는 이것으로 정해 둔다
const String _kDefinedDataMode = String.fromEnvironment('DATA_MODE');
/// 데이터 모드 — 빌드 때 넘긴 값 → `.env` 의 DATA_MODE (api | local) 순.
/// 둘 다 없고 `.env` 도 읽지 않았으면(테스트) 기기 저장으로 둔다.
DataMode readDataMode() {
if (_kDefinedDataMode.isNotEmpty) return _kDefinedDataMode == DataMode.local.name ? DataMode.local : DataMode.api;
if (!dotenv.isInitialized) return DataMode.local;
return dotenv.maybeGet('DATA_MODE') == DataMode.local.name ? DataMode.local : DataMode.api;
}