以下内容均是在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">

flutter Android打包的更多相关文章

  1. Flutter Android 正式打包、以及升级应用 重新打包

    Flutter Android 正式打包 打开androidStudio软件 1.修改版本号. android->app->src->main->AndroidManifest ...

  2. [Android Pro] Android打包一个Apk后,如何查看它的VersionCode、VersionName 等等。

    Android打包成Apk后,其实是一个压缩文件,我们用winrar打开也能看到里面的文件结构.还能看到AndroidManifest.但是里面的内容有点问题. 不知道是因为加密还是Android就是 ...

  3. Android打包的那些事

    使用gradle打包apk已经成为当前主流趋势,我也在这个过程中经历了各种需求,并不断结合gradle新的支持,一一改进.在此,把这些相关的东西记录,做一总结. 1. 替换AndroidManifes ...

  4. [Android Pro] Android 打包流程

    Android 打包流程: 官网地址:http://developer.android.com/tools/building/index.html 具体的打包步骤如下: 1:生成R.java类文件:E ...

  5. 【No.2 Ionic】Android打包

    项目做完之后 接下来就是打包操作了,接下来直接说Android 打包操作 生成签名证书 keytool -genkey -alias vincentguo -keyalg RSA -validity  ...

  6. android打包apk时混淆遇到的问题

    android打包apk的时候一般会选择混淆,而在eclipse中常使用的是proguard来混淆.有很多时候引用了第三方包的时候会导致打包不成功,或者打包成功不能运行的情况. 首先看看正常的prog ...

  7. react-native android打包签名release版apk遇到的问题

    在该项目包名时遇到的一个android打包问题,如下 改包名步骤 修改android/app/build.gradle里的applicationId,为新包名,如:com.xxx.yyy.myProj ...

  8. RN在Android打包发布App

    参考资料:http://www.jianshu.com/p/b8811669bcb6 RN在Android打包发布App 1-:生成一个签名密钥你可以用keytool命令生成一个私有密钥.在Windo ...

  9. Android打包 & Gradle用法

    Ref: Maven仓库上查插件最新版本号The Central Repository Search Enginehttp://search.maven.org/#search%7Cga%7C1%7C ...

随机推荐

  1. 十六, k8s集群资源需求和限制, 以及pod驱逐策略。

    目录 容器的资源需求和资源限制 QoS Classes分类 Guaranteed Burstable Best-Effort kubernetes之node资源紧缺时pod驱逐机制 Qos Class ...

  2. JS继承的原理、方式和应用

    概要: 一.继承的原理 二.继承的几种方式 三.继承的应用场景 什么是继承? 继承:子类可以使用父类的所有功能,并且对这些功能进行扩展.继承的过程,就是从一般到特殊的过程.要了解JS继承必须首先要了解 ...

  3. P2172 [国家集训队]部落战争 二分图最小不相交路径覆盖

    二分图最小不相交路径覆盖 #include<bits/stdc++.h> using namespace std; ; ; ; ], nxt[MAXM << ], f[MAXM ...

  4. Go语言关于Type Assertions的疑问

    我在"The Go Programming Language Specification"中读到了关于x.(T)这样的语法可以对变量是否符合某一type或interface进行判断 ...

  5. R中数据的输入和数据的标注

    数据的导入 默认情况下数据导入时,字符型变量将转化为因子.若不希望转化,可设置 stringsAsFactors=FALSE 从带分隔符的文本文件中导入数据 read.table() file --& ...

  6. Redis入门(二)——基本操作

    Redis作为独立的服务端,在Java中去操作redis需要通过Redis提供的jar z在这里特别申明,除了基本数据以及String外,其余对象,要想写入redis,必须序列化(即使是对象也要实现序 ...

  7. 老瞎眼 pk 小鲜肉 (线段树)

    链接:https://ac.nowcoder.com/acm/contest/1114/E来源:牛客网 题目描述 老瞎眼有一个长度为 n 的数组 a,为了为难小鲜肉,他准备了 Q 次询问,每次给出 一 ...

  8. GET与POST方法和用curl命令执行

    1.超文本传输协议 超文本传输协议(HTTP)的设计目的是保证客户机与服务器之间的通信,web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端. HTTP的工作方式是客户机与服务器之间 ...

  9. 解读>/dev/null 2>&1

    背景 我们经常能在shell脚本中发现>/dev/null 2>&1这样的语句.以前的我并没有去深入地理解这段命令的作用,照搬照用,今天开始去解读>/dev/null 2&g ...

  10. P1198最大数——线段树点修改&&模板题

    题目 题目链接 大意:维护一个数列,有两种操作: 查询操作Q  L:查询当前数列中末尾L个数中的最大的数 插入操作A  n:将n加上t再对D取模,将所得值插入数列末尾 解决方案 由题意知,只有两种操作 ...