# Android

Android多渠道打包较容易设置，以下是几个点

* 在android/app/build.gradle中productFlavors部分进行配置
* 在android/app/src下创建渠道文件夹放置渠道资源，目录结构需要与main文件夹中一致

# ios

ios多渠道打包设置较为复杂，主要是在xcode中操作，可以参考以下两个网页

* https://readmedium.com/build-flavors-in-flutter-android-and-ios-with-different-firebase-projects-per-flavor-27c5c5dac10b 基本参照这个文章的操作就可以了
* https://docs.flutter.cn/deployment/flavors 官方文档，写的不清晰
* https://www.jianshu.com/p/57f5118ae3fb 修改app名字的参考

ios打包主要需要明确几个概念，Scheme就是flavor，Scheme需要与Build Config结合，所有参数设置都是在Build Config上

## 大致流程

1. 创建新的Scheme
2. 复制Build Config，根据新创建的Scheme重命名，必须用-进行连接，例如Debug-test
3. 可选，重命名旧的Scheme，重命名旧的Build Config
4. 把新创建的Scheme和新的Build Config关联
5. 修改对应的Build Config的包名、app名字等信息
6. 修改图标资源，修改对应的Build Config的图标引用
7. 使用 flutter run --flavor scheme名字 进行测试
8. 使用 flutter build ipa --flavor scheme名字 进行打包

# 获取当前运行在那个Flavor下

使用appFlavor常量即可获取当前运行在哪个Flavor下，null标识没有Flavor

官方实现 https://api.flutter-io.cn/flutter/services/appFlavor-constant.html