返回

多渠道构建Flutter版本,拒绝魔改!

前端

前言

在Flutter开发项目中,为了满足不同环境的需求,如开发环境、测试环境、生产环境等,通常需要对构建版本进行魔改。但是,这种魔改的方式不仅繁琐,而且容易出错。

因此,本文将介绍一种更加便捷高效的多渠道构建Flutter版本的方法,帮助您快速切换环境,简化打包发布流程,避免魔改和出错。

准备工作

1. 安装Flutter插件

flutter pub add flutter_flavor

2. 添加配置文件

在项目根目录下创建配置文件.flavor

dev
test
prod

3. 修改gradle文件

在android目录下的build.gradle文件中添加如下代码:

def enableFlavor = project.ext.enableFlavor

def flavors = [
    dev: {
        applicationIdSuffix ".dev"
        versionNameSuffix "-dev"
    },
    test: {
        applicationIdSuffix ".test"
        versionNameSuffix "-test"
    },
    prod: {
        applicationIdSuffix ""
        versionNameSuffix ""
    }
]

def generateFlavorTasks = flavors.collect { k, v ->
    task("assemble${k.capitalize()}") {
        if (enableFlavor) {
            configure(v)
        }
        assembleFlavor(k)
    }
}

task assembleFlavor(String flavor) {
    if (enableFlavor) {
        doLast {
            copy {
                from "build/app/outputs/flutter-apk/${flavor}/app-armeabi-v7a.apk"
                into "build/app/outputs/flutter-apk"
                rename { it.replace(".apk", "-${flavor}.apk") }
            }
        }
    }
}

productFlavors {
    if (enableFlavor) {
        flavors.each { k, _ ->
            "$k" { }
        }
    } else {
        "prod" { }
    }
}

4. 修改Ios的 Podfile 文件

post_install do |installer|
    if installer.pod_targets.select{|t| t.name.include?('Runner')}.count > 0
        installer.pods_project.targets.each do |t|
            t.build_configurations.each do |c|
                c.build_settings['SWIFT_VERSION'] = '5.0'
            end
        end
    end
end

使用说明

1. 设置构建类型

在项目根目录下的.flavor配置文件中,将当前构建类型设置为dev、test或prod。

dev

2. 构建版本

在终端中运行以下命令构建版本:

flutter build apk --flavor dev

3. 安装版本

将构建好的版本安装到设备或模拟器中即可。

总结

本文介绍了如何使用Flutter插件flutter_flavor来构建多渠道Flutter版本。这种方法不仅可以快速切换环境,简化打包发布流程,还可以避免魔改和出错。希望对您有所帮助。