Flutter生成Android的apk包

xiaohai 2019-01-07 20:42:38 2304人围观 标签: Android  Flutter 
简介学习了Flutter开发,很想知道打包出来的apk包是什么样的,大小如何,所以这里就将Flutter生成Android的apk的步骤做一个简单的记录,供后期参考和使用。

系统:Windows
JDK:Java 1.8.0
Flutter:1.0

1、生成签名文件
D:\Java\jdk1.8.0_151\bin>keytool -genkey -v -keystore E:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  zhang
您的组织单位名称是什么?
  [Unknown]:  zhang
您的组织名称是什么?
  [Unknown]:  zhang
您所在的城市或区域名称是什么?
  [Unknown]:  zhang
您所在的省/市/自治区名称是什么?
  [Unknown]:  zhang
该单位的双字母国家/地区代码是什么?
  [Unknown]:  zhang
CN=zhang, OU=zhang, O=zhang, L=zhang, ST=zhang, C=zhang是否正确?
  [否]:  Y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
         CN=zhang, OU=zhang, O=zhang, L=zhang, ST=zhang, C=zhang
输入 <key> 的密钥口令
        (如果和密钥库口令相同, 按回车):
再次输入新口令:
[正在存储E:/key.jks]

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore E:/key.jks -destkeystore E:/key.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
2、创建一个key.properties文件

在项目android目录下创建该文件,内容如下:

storePassword=123456 //上一步生成签名文件的密码(复制过去后一定把注释给去掉)
keyPassword=123456 //上一步生成签名文件的密码(复制过去后一定把注释给去掉)
keyAlias=key
storeFile=E:/key.jks //上一步生成签名文件路径(复制过去后一定把注释给去掉)
3、修改build.gradle文件

在项目android/app目录中,修改build.gradle文件,首先在android { 前面添加如下内容:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

将下面的内容:

    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
        }
    }
4、修改完以上文件后,就可以在项目中使用如下命令进行打包了
E:\flutter\hi_chengyu> flutter build apk Initializing gradle... 1.0s Resolving dependencies... 5.9s Gradle task 'assembleRelease'... Gradle task 'assembleRelease'... Done 8.3s Built build\app\outputs\apk\release\app-release.apk (5.3MB).

从上面也能看出,打包后整个apk包的大小只有5M多点。以上就是整个Flutter打包Android的apk包的步骤。