flutter Android打包

点点圈 提交于 2019-12-26 16:34:16

以下内容均是在mac版本电脑上的操作

1、生成签名

//根目录执行以下命令
keytool -genkey -v -keystore ~/sign.jks -keyalg RSA -keysize 2048 -validity 10000 -alias sign
//输出
输入密钥库口令:  
再次输入新口令: 
您的名字与姓氏是什么?
  [Unknown]:  chen
您的组织单位名称是什么?
  [Unknown]:  gwfx
您的组织名称是什么?
  [Unknown]:  no
您所在的城市或区域名称是什么?
  [Unknown]:  深圳
您所在的省/市/自治区名称是什么?
  [Unknown]:  广东省
该单位的双字母国家/地区代码是什么?
  [Unknown]:  CN
CN=chen, OU=gwfx, O=no, L=深圳, ST=广东省, C=CN是否正确?
  [否]:  y

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 10,000 天):
     CN=chen, OU=gwfx, O=no, L=深圳, ST=广东省, C=CN
[正在存储/Users/admin/sign.jks]

执行命令
keytool -list -v -keystore sign.jks -alias sign -storepass 123456 -keypass 123456
打印如下:
别名: sign
创建日期: 2019年10月23日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=chen, OU=gwfx, O=no, L=深圳, ST=广东, C=CN
发布者: CN=chen, OU=gwfx, O=no, L=深圳, ST=广东, C=CN
序列号: 8e8d3fe
生效时间: Wed Oct 23 10:47:00 CST 2019, 失效时间: Sun Mar 10 10:47:00 CST 2047
证书指纹:
     SHA1: 2F:CB:5F:42:6D:7D:6F:29:D0:7D:3F:5B:7D:D2:F1:91:2F:D0:83:31
     SHA256: D6:5A:49:16:A2:05:CE:83:F5:7B:30:7D:3F:BB:15:CD:ED:06:11:3F:D9:ED:08:87:CB:FB:BD:DD:F4:FD:B9:64
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: D1 08 DA 31 2A 7D 1D B0   FE B8 D0 70 A9 DA 84 18  ...1*......p....
0010: 07 00 28 17                                        ..(.
]
]

keytool相关命令

//查看签名信息
keytool -v -list -keystore sign.jks
//修改别名
keytool -changealias -keystore sign.jks -alias sign -destalias key0

2、将签名文件拖拽到flutter项目中 我这里放在 android文件夹目录

3、填写签名信息

进入android/app/build.gradle文件,找到android {}开头开头的位置添加如下内容

android {
        signingConfigs {
    
        key0Config {
            keyAlias 'key0'
            keyPassword '123456'
            storeFile file("../sign.jks")
            storePassword '123456'
            v2SigningEnabled false
        }
    }
    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
            signingConfig signingConfigs.key0Config
        }
    }
}

4、修改包名为指定包名 位置:android/app/build.gradle 修改defaultConfig中applicationId的值

applicationId "com.xxx.xxx"

5、打包

flutter build apk

其他

申请网络权限

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

设置splash图片launch_background.xml

    <item android:drawable="@mipmap/splash" />

设置ic_launcher AndroidManifest.xml

    android:icon="@mipmap/ic_launcher">
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!