iOS

iOS相对比较简单,还记得我们之前添加Flutter环境的时候,在Xcode配置里面添加了下面一段Shell在Run Script中:

# Type a script or drag a script file from your workspace to insert its path.
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed

该Shell在我们Archive的时候,自动编译Flutter。所以iOS发布的时候,和我们之前一样,直接Archive后上传即可。

Android

Android发布时候的一些基本配置已经有说明(比如混淆),这里不做重复说明。这里只要说编译Flutter,可以按照下面步骤来发布:

  1. 进入Flutter Module文件中, 构建Flutter
# my_flutter是我项目的Flutter Module对应的文件夹,需要改成自己的
cd my_flutter
flutter build apk
  1. 执行第一步之后,和原来一样正常构建App即可
 ./gradlew app.XXXXX:assembleRelease 

第一步也可以作为一个Task放在Gradle构建的时候触发,这样就可以iOS一样正常发布即可:

task gradleFlutterTask(type: Exec) {
    workingDir '../'
    commandLine 'sh', 'gradleFlutter.sh'
}
project.afterEvaluate {
    // 我们项目执行gradlew的时候会添加强制构建正式App变量BUILDRELEASE,这里判断根据自己项目调整
    if(hasProperty("BUILDRELEASE")){ 
        gradleFlutterTask.execute()
    }
}

Flutter-现有项目添加Flutter之发布