1 .生成App签名

keytool -genkey -v -keystore D:/idea/key/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

2 .在android下创建key.properties配置文件,内容:

storePassword=<创建keystore时的storePassword>
keyPassword=<创建keystore时的keyPassword>
keyAlias=key
storeFile=D:/idea/key/key.jks

flutter打包Android的apk
3 .通过编辑/android/app/build.gradle文件为您的应用配置签名
android{...}前面添加

//add------------------start
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
//add------------------end

flutter打包Android的apk
4.替换:

buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }

为:

 signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }

5 .为了打包后有访问网络权限需要修改android\app\src\main\AndroidManifest.xml</manifest>前面加上代码:

   <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

flutter打包Android的apk
6 .构建一个发布版(release)APK
使用命令行:

cd <app dir> (<app dir> 为您的工程目录).

运行flutter build apk (flutter build 默认会包含 --release选项).
可直接使用编辑器中的Terminal运行 flutter build apk 命令.

打包好的发布APK位于/build/app/outputs/apk/app-release.apk

相关文章: