Flavoring Flutter iOS:默认使用开发配置

Sam*_*ssa 2 xcode ios flutter

我按照教程为我的 Flutter 项目添加了风格。

如果我从命令行构建具有特定风格的应用程序,则可以完美运行。这是一个例子:

fvm flutter run -t lib/main_prod.dart --release --flavor=prod
Run Code Online (Sandbox Code Playgroud)

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

  • main_dev.dart

    void main() async {
     AppConfig devAppConfig =
        AppConfig(appName: 'My App', flavor: 'dev');
     Widget app = await initializeApp(devAppConfig);
     runApp(app);
    
    Run Code Online (Sandbox Code Playgroud)

    }

  • main_stage.dart

    void main() async {
     AppConfig stageAppConfig =
        AppConfig(appName: 'My App', flavor: 'stage');
     Widget app = await initializeApp(stageAppConfig);
     runApp(app);
    
    Run Code Online (Sandbox Code Playgroud)

    }

  • main_prod.dart

    void main() async {
     AppConfig prodAppConfig =
        AppConfig(appName: 'My App', flavor: 'prod');
     Widget app = await initializeApp(prodAppConfig);
     runApp(app);
    
    Run Code Online (Sandbox Code Playgroud)

    }

还有initializeApp()方法:

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

  ...

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

  ...

  return MyApp(appConfig: appConfig);
}
Run Code Online (Sandbox Code Playgroud)

此时,当我存档 iOS 项目(产品 -> 存档)时,默认情况下 appConfig.flavor 获得“dev”值。

我在 xCode 构建设置(TARGETS -> Runner -> Build Settings -> Product Bundle Identifier)上设置的产品包标识符是:

用于调试

  • 调试-dev -> com.myapp.dev
  • 调试阶段 -> com.myapp.stage
  • 调试-prod -> com.myapp

供发布

  • 发布-dev -> com.myapp.dev
  • 发布阶段 -> com.myapp.stage
  • 发布-prod -> com.myapp

如果需要,我将分享更多项目信息。

Pra*_*tik 10

确保您在 Xcode 上引用这些主 dart文件,即 main_dev.dart、main_prod.dart 和 main_stage.dart。您可以从 TARGETS -> Runner -> Build Settings 执行此操作,然后搜索 FLUTTER_TARGET。

您需要为不同的环境提供路径,如下图所示:

在此输入图像描述