我按照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
如果需要的话,我会分享更多的项目信息。
1条答案
按热度按时间abithluo1#
确保你在Xcode上引用了那些 main dart 文件,即main_dev.dart,main_prod.dart,and main_stage.dart。你可以从TARGETS -〉Runner -〉Build Settings,然后搜索FLUTTER_TARGET。
在那里,您需要为不同的环境给予路径,如下图所示: