Установка переменных среды в Flutter
Например, создание клиента для API, например Twitch.
В двоичном коде Dart CLI я мог бы использовать общую переменную среды или переменную определения Дарта. Например, используя как резервные копии:
main() {
String clientId =
// dart -dCLIENT_ID='abc bin/example.dart
// This is considered "compiled-into" the application.
const String.fromEnvironment('CLIENT_ID') ??
// CLIENT_ID='abc' dart bin/example.dart
// This is considered a runtime flag.
Platform.environment['CLIENT_ID'];
// Use clientId.
}
Есть ли у Flutter способ установить оба из них, в частности...
- Во время dev
- При отправке в prod
С удовольствием помогите с некоторыми документами, как только я выясню, как:)
Ответы
Ответ 1
Для конфигурации общий шаблон, который я видел, состоит в использовании отдельных основных файлов. т.е.
flutter run -t lib/production_main.dart
а также
flutter build apk -t lib/debug_main.dart
А затем в этих разных основных файлах настройте нужные конфигурации.
Что касается чтения идентификаторов, вы можете сделать это из произвольных ресурсов https://flutter.io/assets-and-images/.
Я полагаю, что во Flutter можно читать из среды, как вы предлагаете, однако я не знаю, как установить эти переменные среды на iOS или Android.
Ответ 2
Поскольку я тоже пытался решить эту проблему и столкнулся с этой веткой, я просто хотел добавить это для людей, которые ищут решение в будущем... В настоящее время существует поддерживаемый способ получения информации о том, запущено приложение или нет:
const bool isProduction = bool.fromEnvironment('dart.vm.product');
По предложению:
https://twitter.com/FlutterDev/status/1048278525432791041
https://github.com/flutter/flutter/issues/4014