generated from ttipo/project-base
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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user