乐趣区

关于uniapp:uniapp项目实践总结二十四安卓平台-APP-打包教程

导语:当你的利用程序开发实现后,在上架安卓利用商店之前,须要进行打包操作,上面简略介绍一下打包办法。

目录

  • 筹备工作
  • 配置我的项目
  • 生成证书
  • 打包配置

筹备工作

在打包之前,请保障你的 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 架构:

  1. armeabi-v7a:第 7 代及以上的 ARM 处理器(ARM32 位),市面上大多数手机应用此 CPU 类型。
  2. arm64-v8a: 第 8 代、64 位 ARM 处理器(ARM64 位),最近两年新发的设施应用此 CPU 类型,能够兼容应用 armeabi-v7a 的 so 库。
  3. 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                                        ...=
]
]

*******************************************
*******************************************

其中证书的指纹信息:

  1. MD5:证书的 MD5 指纹信息
  2. SHA1:证书的 SHA1 指纹信息
  3. 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 打包教程的次要内容,有不足之处,请多多斧正。

退出移动版