我有一个应用程序,我应该在其中启动它的两个版本,一个用于中国,一个用于全球 我创建了风味和所有内容,但我的问题是我想根据风味将 pubspec.yaml 文件分成两个文件,因为中国的库与全球的库不同,我不想构建包括所有库的库两个版本
这似乎是 Flutter 当前的限制,参见 #46979。
您可以使用 gradle 脚本来做到这一点
首先在项目配置上你可以配置一个BeforeRunTask
例如(.idea/runConfigurations/Global_prod.xml)
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="global-prod" type="FlutterRunConfigurationType" factoryName="Flutter" singleton="false">
<option name="additionalArgs" value="--flavor=globalprod" />
<option name="buildFlavor" value="globalprod" />
<method v="2">
<option name="Gradle.BeforeRunTask" enabled="true" tasks="copyGlobalPubspec" externalProjectPath="$PROJECT_DIR$/android" vmOptions="" scriptParameters="--quiet" />
</method>
</configuration>
</component>
然后在林间空地创建一个任务来替换 pub spect
例如:(android/app/build.gradle)
task copyCAPubspec(type: Copy) {
from('../../app/markets/global/pubspec-global.yaml') {
rename '.*', 'pubspec.yaml'
}
into '../../'
from('../../app/markets/global/analysis_options_market.yaml')
into '../../'
}