uniapp的安卓app打包(本地离线)

建立项目

  1. 下载 HBuilderX,登录 dclould账号(必须)
  2. 新建项目
    uniapp的安卓app打包(本地离线)_第1张图片

本地打包

uniapp的安卓app打包(本地离线)_第2张图片

打包后的文件
uniapp的安卓app打包(本地离线)_第3张图片

回到 上两层目录
uniapp的安卓app打包(本地离线)_第4张图片

待会需要复制整个 \_\_UNI\_\_354F6F0 目录

生成离线打包 Key

具体方法: https://ask.dcloud.net.cn/art...

生成证书

安装 JDK后输入以下命令

命令格式:

keytool -genkey -alias 证书别名 -keyalg RSA -keysize 2048 -validity 证书的有效期 -keystore 证书文件名

注意:

  1. 输入上述命令后的第一个输入时密码,这个密码是证书的密码,必须记录,假设这里的密码是"leonardpwd"
  2. 再输入一连串信息后他会问你是否正确,此时需要手动输入 "是"
keytool -genkey -alias leonard-app -keyalg RSA -keysize 2048 -validity 36500 -keystore leonard-app.keystore

查看证书

keytool -list -v -keystore leonard-app.keystore
Enter keystore password: //输入密码,我的是上面设置的"leonardpwd",回车

显示的信息类似下方文本,其中 证书指纹SHA1 待会需要使用

输入密钥库口令:
密钥库类型: PKCS12
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: leonard-app
创建日期: 2021年5月31日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
发布者: CN=Unknown, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown
序列号: a2ac5fd0886b0130
生效时间: Mon May 31 10:51:26 CST 2021, 失效时间: Wed May 07 10:51:26 CST 2121
证书指纹:
         SHA1: 99:23:00:18:40:20:D1:F3:41:D5:70:6D:38:94:56:58:68:C3:1E:33
         SHA256: 8F:17:A9:63:3A:34:26:15:1C:6F:B8:30:D7:A4:59:42:99:F8:04:60:86:84:4C:83:B3:1E:C4:2E:F3:AA:EB:07
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3

扩展:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 88 41 F4 2F A9 C5 F4 68   86 D7 6E E9 D5 3D A9 F1  .A./...h..n..=..
0010: A2 DF 3B 89                                        ..;.
]
]

设置 Key

打开 DCloud 开发者中心,并点击我们的项目
uniapp的安卓app打包(本地离线)_第5张图片

点击 "离线打包 Key 管理",并填写相关信息
uniapp的安卓app打包(本地离线)_第6张图片

这就是我们的 AppKey
uniapp的安卓app打包(本地离线)_第7张图片

安卓相关配置

文件位置: https://nativesupport.dcloud....
uniapp的安卓app打包(本地离线)_第8张图片

  1. 安装 Android Studio
  2. 下载好 App 离线SDK
    uniapp的安卓app打包(本地离线)_第9张图片
  3. 下载后,解压缩得到
    uniapp的安卓app打包(本地离线)_第10张图片
  4. 复制 HBuilder-HelloUniApp 文件夹到一个地方存储
    uniapp的安卓app打包(本地离线)_第11张图片
    uniapp的安卓app打包(本地离线)_第12张图片

导入项目

打开 Android Studio, 打开已经存在的项目( Open an Existing Project )

注意,第一次打开可能需要等待很长时间,Android Studio正在导入相关文件
uniapp的安卓app打包(本地离线)_第13张图片

项目配置

删除项目原本文件

点击显示详细目录
uniapp的安卓app打包(本地离线)_第14张图片

删除项目自带示例文件夹
uniapp的安卓app打包(本地离线)_第15张图片

复制项目

再本文章节"本地打包"中已经打包完成,复制以下整个文件夹
uniapp的安卓app打包(本地离线)_第16张图片

粘贴到 apps文件夹中
uniapp的安卓app打包(本地离线)_第17张图片

最终效果
uniapp的安卓app打包(本地离线)_第18张图片

设置 APPID

打开 manifest.json ,复制 id
uniapp的安卓app打包(本地离线)_第19张图片

打开 data/dcloud_control.xml , 粘贴替换为刚才复制的 id
uniapp的安卓app打包(本地离线)_第20张图片

设置 AppKey

网页打开 DCloud开发者中心,进入项目,点击 "离线打包Key管理",复制 Android 的 App Key
uniapp的安卓app打包(本地离线)_第21张图片

粘贴到 manifests/AndroidManifest.xml 中的 meta-data 节点 (该节点一般再文件最底部)
uniapp的安卓app打包(本地离线)_第22张图片

设置证书

uniapp的安卓app打包(本地离线)_第23张图片

  1. 打开build.gradle 文件(注意不是上面那个,可以按照文件名后面括号的字区分)
  2. 再 signingConfigs -> config 内部填写相关信息

    keyAlias '证书别名'
    keyPassword '证书密码'
    storeFile file('证书路径,注意双斜杠')
    storePassword '证书密码'
  3. 点击右上角 "Sync Now"

修改 applicationId

  1. build.gradle -> manifestPlaceholders -> apk.applicationId

    我的是 com.leonard.app
    uniapp的安卓app打包(本地离线)_第24张图片

  1. AndroidManifest.xml

    package内的值和 build.gradle 文件中的值一样
    uniapp的安卓app打包(本地离线)_第25张图片

修改 provider

打开 AndroidManifest.xml,查找 android:authorities , 修改值为 xxx.xxx.xxx.fileprovider

此处我修改为 com.leonard.app.fileprovider
uniapp的安卓app打包(本地离线)_第26张图片

打包 APK

Build -> Build Bundle(s) / APK(s) -> Build APK(s)
uniapp的安卓app打包(本地离线)_第27张图片

打包完成后,右下角会出现提示,点击 locate 即可找到 APK文件
uniapp的安卓app打包(本地离线)_第28张图片

打开安卓手机,安装该 apk 查看即可
uniapp的安卓app打包(本地离线)_第29张图片

END

你可能感兴趣的:(uniapp的安卓app打包(本地离线))