23 lines
1.2 KiB
Markdown
23 lines
1.2 KiB
Markdown
# 2026-09-20 — API URL мобильного приложения из `.env`
|
||
|
||
## Запрос
|
||
Задавать `ApiBaseUrl` через переменные `.env`, а не флагом `run.ps1`.
|
||
|
||
## Решение
|
||
Конфиг читается из `mobile/.env` и уходит во Flutter как
|
||
`--dart-define-from-file` — без `flutter_dotenv` в ассетах (иначе gitignored
|
||
`.env` ломал бы CI: asset обязан существовать в момент сборки).
|
||
|
||
Порядок в `AppConfig.fromEnvironment`:
|
||
1. `--dart-define` (в т.ч. из файла)
|
||
2. явно переданная map (тесты)
|
||
3. пустой URL → демо-режим
|
||
|
||
`run.ps1`: если `.env` нет — копирует `.env.example`. `-ApiBaseUrl` / `-WebUrl`
|
||
остались как разовый override поверх файла. Скрипт сохранён в UTF-8 с BOM и
|
||
без вложенных кавычек — иначе PowerShell 5.1 на Windows-1251 сыпется
|
||
`TerminatorExpectedAtEndOfString`.
|
||
|
||
Ключи: `PPM_API_BASE_URL`, `PPM_WEB_URL`, `PPM_DEMO`.
|
||
Локальный `.env` в gitignore (есть и в корневом).
|