共计 4779 个字符,预计需要花费 12 分钟才能阅读完成。
导语:当你的利用程序开发实现后,在上架安卓利用商店之前,须要进行打包操作,上面简略介绍一下打包办法。
目录
- 筹备工作
- 配置我的项目
- 生成证书
- 打包配置
筹备工作
在打包之前,请保障你的 uniapp 应用程序编译到安卓手机模拟器的 App 是能够失常运行的,APP 打包分为安卓和 ios 两个平台,上面简略介绍一下安卓的打包办法,因为本地打包问题较多,操作比较复杂,这里就省略了,本次次要介绍在线打包的办法。
配置我的项目
次要是在 manifest.json
进行配置;关上文件后增加以下几个内容。
根本信息
利用名称、形容、版本名称、版本号;
图标配置
上传你的利用图标,倡议1024*1024
,而后主动生成所有图标并替换;
启动界面
应用原生隐衷政策提示框,这个很重要,勾选后会主动生成配置文件androidPrivacy.json
,示例如下:
依据你本人的理论状况填写对应的内容和地址。
{
"version": "1.0.0",
"prompt": "template",
"title": "服务协定和隐衷政策",
"message": "请你务必审慎浏览、充沛了解“服务协定”和“隐衷政策”各条款,包含但不限于:为了更好的向你提供服务,咱们须要收集你的设施标识、操作日志等信息用于剖析、优化利用性能。<br/> 你可浏览 <a href=\"\">《服务协定》</a> 和 <a href=\"\">《隐衷政策》</a> 理解详细信息。如果你批准,请点击上面按钮开始承受咱们的服务。",
"buttonAccept": "批准并承受",
"buttonRefuse": "暂不批准",
"hrefLoader": "system|default",
"backToExit": "false",
"second": {
"title": "确认提醒",
"message": "进入利用前,你需先批准 <a href=\"\">《服务协定》</a> 和 <a href=\"\">《隐衷政策》</a>,否则将退出利用。",
"buttonAccept": "批准并持续",
"buttonRefuse": "退出利用"
},
"disagreeMode": {
"support": false,
"loadNativePlugins": false,
"visitorEntry": true,
"showAlways": false
},
"styles": {
"backgroundColor": "#00FF00",
"borderRadius": "5px",
"title": {"color": "#ff00ff"},
"buttonAccept": {"color": "#ffff00"},
"buttonRefuse": {"color": "#00ffff"},
"buttonVisitor": {"color": "#00ffff"}
}
}
模块配置
这块依据你本人的须要进行打勾抉择。比方我用到的是扫码,分享就勾选就好了;如果遇到领取,登录或分享,还须要到对应平台申请利用 ID 和通用链接。
权限配置
这块就是依据你本人利用的状况来勾选对应的权限,用到什么就勾选什么好了,不必勾选多余的,免得上架审核被打回来。
罕用其余设置
这块次要是 反对 CPU 类型,HBuilderX 曾经反对以下 CPU 架构:
armeabi-v7a
:第 7 代及以上的 ARM 处理器(ARM32 位),市面上大多数手机应用此 CPU 类型。arm64-v8a
: 第 8 代、64 位 ARM 处理器(ARM64 位),最近两年新发的设施应用此 CPU 类型,能够兼容应用 armeabi-v7a 的 so 库。x86
: 少部分平板应用 x86,AS 模拟器当选了 intel x86 时应用 x86 处理器,以及其它罕用三方模拟器通常应用 x86
还要就是 UrlSchemes 协定 设置,这里依据本人利用名称设置就好了。
- 残余配置
剩下的就依据本人理论状况配置就好,不多介绍了。
生成证书
这里次要是应用 JavaSDK 自带的 keytool
工具来生成自有证书。
查看帮忙
C:\Users\Hello>keytool
密钥和证书管理工具
命令:
-certreq 生成证书申请
-changealias 更改条目标别名
-delete 删除条目
-exportcert 导出证书
-genkeypair 生成密钥对
-genseckey 生成密钥
-gencert 依据证书申请生成证书
-importcert 导入证书或证书链
-importpass 导入口令
-importkeystore 从其余密钥库导入一个或所有条目
-keypasswd 更改条目标密钥口令
-list 列出密钥库中的条目
-printcert 打印证书内容
-printcertreq 打印证书申请的内容
-printcrl 打印 CRL 文件的内容
-storepasswd 更改密钥库的存储口令
应用 "keytool -command_name -help" 获取 command_name 的用法
制作证书
keytool -genkey -alias hello -keyalg RSA -keysize 2048 -validity 36500 -keystore hello.keystore
hello
是证书别名,倡议字母和数字;hello.keystore
是证书文件名称;36500
是证书的有效期,单位天;
回车当前填入以下信息确认。
输出密钥库口令:
再次输出新口令:
您的名字与姓氏是什么?
[Unknown]: Mark
您的组织单位名称是什么?
[Unknown]: Hello
您的组织名称是什么?
[Unknown]: Hello.inc
您所在的城市或区域名称是什么?
[Unknown]: JC
您所在的省 / 市 / 自治区名称是什么?
[Unknown]: SX
该单位的双字母国家 / 地区代码是什么?
[Unknown]: CN
CN=Mark, OU=Hello, O=Hello.inc, L=JC, ST=SX, C=CN 是否正确?
[否]: y
输出 <hello> 的密钥口令
(如果和密钥库口令雷同, 按回车):
再次输出新口令:
Warning:
JKS 密钥库应用专用格局。倡议应用 "keytool -importkeystore -srckeystore hello.keystore -destkeystore hello.keystore -deststoretype pkcs12" 迁徙到行业标准格局 PKCS12。
查看证书
能够应用以下命令查看证书信息。
keytool -list -v -keystore hello.keystore
# 输出明码,回车
输出密钥库口令:
能够看到打印出信息了。
密钥库类型: PKCS12
密钥库提供方: SUN
您的密钥库蕴含 1 个条目
别名: hello
创立日期: 2023-9-25
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Mark, OU=Hello, O=Hello.inc, L=JC, ST=SX, C=CN
发布者: CN=Mark, OU=Hello, O=Hello.inc, L=JC, ST=SX, C=CN
序列号: 57f8059e
有效期为 Mon Sep 25 17:55:21 CST 2023 至 Wed Sep 01 17:55:21 CST 2123
证书指纹:
MD5: 32:5D:CA:E6:62:91:E5:1A:AE:86:07:08:B9:49:D8:08
SHA1: 4D:F1:3E:4C:1A:7A:F2:A3:3C:35:5F:C9:8D:1F:4D:F1:11:6A:B0:A0
SHA256: 10:EC:97:1E:70:CC:00:86:BF:3A:F3:6A:56:12:36:41:B6:C8:92:DE:4F:C6:9B:D8:77:E0:A8:E5:68:D3:24:B2
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
扩大:
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A0 E4 E3 A3 F8 E5 FF 8A D9 1E EF D9 F6 DE E5 A7 ................
0010: C4 DC 97 3D ...=
]
]
*******************************************
*******************************************
其中证书的指纹信息:
- MD5:证书的 MD5 指纹信息
- SHA1:证书的 SHA1 指纹信息
- SHA256:证书的 SHA256 指纹信息
罕用的命令
# 生成 jks 证书
keytool -genkeypair -alias demo1 -keystore demo.jks -validity 36500 -keyalg ec
keytool -genkeypair -alias demo2 -keystore demo.jks
# 查看 jks 证书
keytool -list -keystore demo.jks
# 查看 jks 证书信息
keytool -list -v -keystore demo.jks
keytool -list -keystore demo.jks -storepass 123456
# 导入 cer 证书
keytool -exportcert -alias demo1 -file demo1.cer -keystore demo.jks -storepass 123456
# 导出 cer 证书
keytool -importcert -alias demo1cert -file demo1.cer -keystore demo.jks -storepass 123456
keytool -importkeystore -srckeystore demo.jks -srcalias demo1 -srcstorepass 123456 -destkeystore demo1.p12 -deststoretype pkcs12 -deststorepass 123456
# 打印 cer 证书信息
keytool -printcert -file demo1.cer
# 生成公钥和私钥
openssl pkcs12 -in demo1.p12 -out demo1.pem -passin pass:123456 -passout pass:123456
openssl ec -in demo1.key
打包配置
自制好证书当前,开始填写相干的信息。
Android 包名
包名必须是字母、数字或下划线,并且以 .
宰割为两段内容,每段内容必须以字母结尾,首字母必须为小写字母,例如:dev.hello.test
;
签名证书
能够抉择自有证书,就是刚刚制作的证书,应用云端证书以及公共测试证书三种抉择,倡议云端或者自有证书。
- 证书别名:例如
hello
; - 证书私钥明码:例如
123456
; - 证书文件:旅行抉择你的证书文件;
打包类型
- 正式包:能够装置或公布到利用商店;
- 自定义基座调试包:只能本地真机调试应用;
- 渠道包:就是针对各个利用商店进行打包;
- 传统打包:须要上传代码及证书;
- 疾速安心打包:不上传代码及证书,打包更快;
填完以上信息后,点击打包按钮,开始打包了,打包数量多时须要排队等待。
[HBuilder] 11:17:50.233 我的项目 hello [__UNI__XXXXXXX]的打包状态:[HBuilder] 11:17:50.233 工夫: 2023-09-25 11:17:48 类型: Android 自有证书 队列中
[HBuilder] 11:17:50.233 目前云打包排队人数较多,以后打包工作位于队列第 27 位,预计 2 分钟内进入打包状态。
打包胜利
打包胜利当前,在 {我的项目根目录}/unpackage/release/apk/
文件夹下会生成一个 __UNI__XXXXXX__20230925111748.apk
的安卓安装包,这就是打包胜利了。
最初
以上就是安卓平台 APP 打包教程的次要内容,有不足之处,请多多斧正。