1.配置--dart-define,如下:
“--dart-define=APP_CHANNEL=www.baidu.com --dart-define=OTHER_VAR=这是测试环境”
想配几个就配几个,多个--dart-define直接用一个小空格隔开就行,不管是flutter run debug、flutter run release、flutter build apk都需要在后面加上上面那个配置信息
例如:flutter build apk --dart-define=APP_CHANNEL=www.baidu.com --dart-define=OTHER_VAR=这是测试环境
为了方便,在debug模式下可以在这里配置下
这样可以手动的选择运行哪个配置环境了
2.android原生中gradle中的配置
这些都不用多说,到处都搜的到
/// 获取取到参数使用,这里设置一下默认值
def dartEnvironmentVariables = [
APP_CHANNEL: 'main',
OTHER_VAR: 'other',
]
if (project.hasProperty('dart-defines')) {
dartEnvironmentVariables = dartEnvironmentVariables + project.property('dart-defines')
.split(',')
.collectEntries { entry ->
// 1.22.6 版本
//def pair = URLDecoder.decode(entry).split('=')
// 2.2 版本
def pair = new String(entry.decodeBase64(), 'UTF-8').split('=')
[(pair.first()): pair.last()]
}
}
主要是怎么去用这里简单说下
你看,我可以根据dartEnvironmentVariables动态的从flutter里就设置包名了,包名变了对应的authorities也会跟着变,包括其他的参数都可以动态设置
按照我安卓的开发习惯,我会先设置一个多渠道打包,然后再在flutter中动态配置,完美
productFlavors {
recall {
applicationId dartEnvironmentVariables.applicationId
versionCode dartEnvironmentVariables.versionCode
versionName dartEnvironmentVariables.versionName
manifestPlaceholders = [ amap_key : dartEnvironmentVariables.Amap_key
, authorities: dartEnvironmentVariables.Authorities
, app_name : dartEnvironmentVariables.App_name
]
}
}