Flutter Android端的多渠道打包

213 阅读1分钟

在 gradle 中配置签名

如果你还不会创建签名,请先在本站搜索其他文章。

//引用签名(如果你还不会生成签名,请搜索站内其他文章,这里不做赘述)
signingConfigs{
release {
    storeFile file('D:/key/...')
    storePassword ""
    keyAlias ""
    keyPassword ""
    }
debug{...}
}
...
buildTypes {
    release {
        //开启代码混淆
        minifyEnabled true
        
        //去除没有用到的类、方法、图片
        //必须minifyEnabled也为true
        shrinkResources true

        proguardFiles getDefaultProguardFile(
                'proguard-android-optimize.txt'),
                'proguard-rules.pro'

        //引用上方配置好的签名
        signingConfig signingConfigs.release
    }

    debug {
        debuggable true
        signingConfig signingConfigs.debug
    }
}

添加分支

创建一个flavorDimension来对添加的productFlavor进行分组。 Gradle 不会组合具有相同dimension的productFlavor。

通过applicationId更改包名,当然你也可以这么写: applicationIdSuffix ".free",在原包名后接上.free

flavorDimensions "default","apple"
productFlavors {

    backup {
        applicationId "com.xx.xxx"
        dimension "default"
        manifestPlaceholders [""] = ""
    }

    test {
        applicationId "com.x.x"
        dimension "apple"
    }
}

配置launch.json

1.在项目的根目录中,添加一个名为 .launch 的文件夹。

2.在 .launch 文件夹中,创建一个名为 launch.json 的文件。

3.在 launch.json 文件中,为每种渠道添加一个配置对象。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "backup",
      "request": "launch",
      "type": "dart",
      "program": "lib/main.dart",
      "args": ["--flavor", "backup", "--target", "lib/main.dart" ]
    }
  ],
}

运行分支

在命令行或者IDE中运行:flutter run --flavor backup

如果需要打release包运行:flutter build apk --flavor backup

包生成后安装到手机上:adb install build/app/outputs/flutter-apk/your-appname.apk