Flutter iOS:默认使用dev配置

cczfrluj  于 2023-04-13  发布在  Flutter
关注(0)|答案(1)|浏览(150)

我按照this教程为Flutter项目添加了一些风格。
如果我从命令行构建具有特定风格的应用程序,工作完美.这是一个例子:

fvm flutter run -t lib/main_prod.dart --release --flavor=prod

在Flutter项目中,我创建了三个入口点:

  • 主要发展目标
void main() async {
 AppConfig devAppConfig =
    AppConfig(appName: 'My App', flavor: 'dev');
 Widget app = await initializeApp(devAppConfig);
 runApp(app);

}

  • 主级镖
void main() async {
 AppConfig stageAppConfig =
    AppConfig(appName: 'My App', flavor: 'stage');
 Widget app = await initializeApp(stageAppConfig);
 runApp(app);

}

  • 主生产镖
void main() async {
 AppConfig prodAppConfig =
    AppConfig(appName: 'My App', flavor: 'prod');
 Widget app = await initializeApp(prodAppConfig);
 runApp(app);

}
而**initializeApp()**方法:

Future<Widget> initializeApp(AppConfig appConfig) async {
  WidgetsFlutterBinding.ensureInitialized();

  ...

  //save app flavor on sharedPreferences
  resources.prefs.setFlavor(appConfig.flavor);

  ...

  return MyApp(appConfig: appConfig);
}

此时,当我归档iOS项目时(Product -〉archive),默认情况下appConfig.flavor得到'dev'值。
我在xCode Build Settings(TARGETS -〉Runner -〉Build Settings -〉Product Bundle Identifier)上设置的产品包标识符是:
用于调试

  • Debug-dev -〉com.myapp.dev
  • Debug-stage -〉com.myapp.stage
  • 调试-生产-〉com.myapp

供发布

  • 发布-dev-〉com.myapp.dev
  • Release-stage -〉com.myapp.stage
  • Release-prod -〉com.myapp

如果需要的话,我会分享更多的项目信息。

abithluo

abithluo1#

确保你在Xcode上引用了那些 main dart 文件,即main_dev.dart,main_prod.dart,and main_stage.dart。你可以从TARGETS -〉Runner -〉Build Settings,然后搜索FLUTTER_TARGET。
在那里,您需要为不同的环境给予路径,如下图所示:

相关问题