1、在vscode的Terminal(工具底部)输入下面的命令,其中“D:/key.jks”表示将key生成到这里,-alias后面的为别名,后面配置key,会用到。
keytool -genkey -v -keystore D:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key2、输入上面的命令,回车后,会让你输入口令,(口令随便写,至少6位密码)
输入密钥库口令: 再次输入新口令:3、口令输入完毕,回车会让你填写一系列信息,随便填写,或者不填写直接一直回车,最后出现“CN=123, OU=123, O=123, L=123, ST=123, C=123是否正确?”,填 " y "回车即可。
此时,会在d盘,生成key.jks。
第二步、配置key
在android目录下新建 “ key.properties ”文件,并填写下面内容:
storePassword=密匙库口令 //即上面生成key时填写的,如:123456 keyPassword=key密匙口令 //即上面生成key时填写的,如:123456 keyAlias=key别名 //即上面命令行 -alias参数后面的参数,如:key storeFile=key路径 //即生成key的路径,如:D:/key.jks第三步、配置build.gradle
这里配置的是android/app/build.gradle,注意,不是android/build.gradle。
1、在android{ 前加入下面代码
def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { ...2、把android{}里面的buildTypes代码:
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 { // 替换成 release signingConfig signingConfigs.release } }第四步: 生成apk
在Terminal中输入命令 “ flutter build apk ”,命令执行结果如下:
Initializing gradle... 0.8s Resolving dependencies... 3.2s Calling mockable JAR artifact transform to create file: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\android.jar\82cd5b0be7868a5045965a34e94bb6cb\android.jar with input E:\Android\Sdk\platforms\android-28\android.jar Running Gradle task 'assembleRelease'... Running Gradle task 'assembleRelease'... Done 84.4s Built build\app\outputs\apk\release\app-release.apk (12.8MB).最后生成的apk在项目目录的 build\app\outputs\apk里
此外,如果想更改安卓apk图标和生成的apk名称,可以执行下面两步:
1、进入android\app\src\main\res,找到mipmap-hdpi、mipmap-mdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi几个文件夹,将里面的图片替换掉。
2、进入android\app\src\main,找到AndroidManifest.xml文件,找到下面代码:
<application android:name="io.flutter.app.FlutterApplication" android:label="flutter_demo01" android:icon="@mipmap/ic_launcher">这里的label就是生成的apk名称,下面的icon的“ic_launcher”是上面第一步替换的图片名称,如果改了图片名,这里也要更改。