Flutter Flavors

Flutter Flavors позволяют настроить несколько сред (например, разработка, тестирование и продакшн) в вашем приложении Flutter. Это полезно, когда необходимо поддерживать разные конфигурации (например, различные URL API, флаги функций или темы приложения) для каждой среды.
Шаг 1: Определение Flavors в Android
- Откройте файл
android/app/build.gradle
: В Android-модуле можно определить flavors в файлеbuild.gradle
:android { ... flavorDimensions "default" productFlavors { dev { applicationIdSuffix ".dev" versionNameSuffix "-dev" } staging { applicationIdSuffix ".staging" versionNameSuffix "-staging" } prod { // Без суффиксов для продакшна } } }
- Обновите
MainActivity
для каждого Flavor: Обновите вашMainActivity.java
илиMainActivity.kt
, чтобы использовать flavor-специфичные классыMainActivity
, если это необходимо.
Шаг 2: Определение Flavors в iOS
-
Откройте
ios/Runner.xcodeproj
: В Xcode перейдите в настройки проекта и добавьте новые схемы для каждого flavor:- В верхнем меню выберите Product > Scheme > New Scheme и создайте схемы, такие как
dev
,staging
иprod
.
- В верхнем меню выберите Product > Scheme > New Scheme и создайте схемы, такие как
-
Создайте конфигурации сборки:
- Перейдите в Настройки проекта > Вкладка Info.
- В разделе Configurations продублируйте конфигурации
Debug
иRelease
для каждого flavor.
-
Настройте файлы Plist: Для каждого flavor вам понадобится отдельный файл
Info.plist
(например,Info-dev.plist
,Info-staging.plist
, иInfo-prod.plist
). Каждый plist файл может содержать различные конфигурации, такие как API ключи или URL.
Шаг 3: Доступ к flavor-специфичным переменным в Dart
- Измените
pubspec.yaml
: Добавьте пакет, например,flutter_dotenv
илиenvironment_config
для управления переменными окружения, если это необходимо.dependencies: flutter: sdk: flutter flutter_dotenv: ^5.0.2
- Создайте файлы
main_dev.dart
,main_staging.dart
иmain_prod.dart
: Настройте точки входа для каждого flavor с различными конфигурациями.void main() { // Специфическая для окружения настройка runApp(MyApp(flavor: 'dev')); }
- Доступ к информации о flavor в приложении: Внутри приложения вы можете проверить flavor следующим образом:
class MyApp extends StatelessWidget { final String flavor; MyApp({required this.flavor}); @override Widget build(BuildContext context) { return MaterialApp( title: flavor == 'prod' ? 'Продакшн приложение' : 'Приложение для разработки', // Другие конфигурации... ); } }
Шаг 4: Запуск Flavors
Чтобы запустить определенный flavor, используйте следующие команды:
- Android:
flutter run --flavor dev -t lib/main_dev.dart
- iOS:
flutter run --flavor dev -t lib/main_dev.dart
Эти шаги помогут настроить базовое управление flavors в вашем приложении Flutter, позволяя разделять конфигурации для различных сред.