flutter中关于动态配置多环境之--dart-define

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模式下可以在这里配置下

flutter中关于动态配置多环境之--dart-define

flutter中关于动态配置多环境之--dart-define

这样可以手动的选择运行哪个配置环境了

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中关于动态配置多环境之--dart-define

按照我安卓的开发习惯,我会先设置一个多渠道打包,然后再在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
        ]
  
    }

}
上一篇:Flutter第二天


下一篇:持续发烧,聊聊Dart语言的并发处理,能挑战Go不?