Как запустить версию модуля флаттера с собственной стороны?

Я использую модуль flutter, чтобы добавить несколько экранов в свое родное приложение для iOS. то же самое используется и на стороне Android. Теперь я хочу добавить в приложение вкус dev, prod. Мне удалось сделать это в модуле флаттера, и я также могу запустить его с помощью терминала.

flutter run --flavor dev/prod

это работает так, как ожидалось. Но теперь я хочу запустить это из моего родного приложения. Я создал те же схемы на стороне iOS, но он всегда запускает последний сгенерированный вариант модуля флаттера, а не тот, который я пытаюсь запустить.

Я уже читал этот выпуск git. У него нет решения, и последний коммит просто говорит: «Да, вы можете это сделать, но не знаете, как».

Прочтите это руководство по настройке вкусов. Developer.android.com/build/build-variants#product-flavors

Maveňツ 25.04.2024 08:50
1
1
139
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В итоге я использовал прагму vm:entry-point для управления точкой входа модуля флаттера и назначения необходимого значения для построения контекста. Доступ к ним можно получить через приложение, когда это необходимо.

@pragma('vm:entry-point')
Future<void> devMain() async {
   await mainSetup();
   runApp(AppConfig(appEnvironment: AppEnvironment.dev, child: MyApp()));
}

@pragma('vm:entry-point')
Future<void> main() async {
   await mainSetup();
   runApp(AppConfig(appEnvironment: AppEnvironment.prod, child: MyApp()));
}

Теперь мы можем запустить эти точки входа из собственного приложения, используя приведенный ниже код.

let engine = FlutterEngine(name: "com.coforge.my_router")
-> engine.run(withEntrypoint: "devMain")
-> engine.run(withEntrypoint: nil)

Другие вопросы по теме