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

建立项目

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

打包后的文件
uniapp的安卓app打包(本地离线)
文章图片

回到 上两层目录
uniapp的安卓app打包(本地离线)
文章图片

待会需要复制整个 \_\_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 6886 D7 6E E9 D5 3D A9 F1.A./...h..n..=.. 0010: A2 DF 3B 89..; . ] ]

设置 Key 打开 DCloud 开发者中心,并点击我们的项目
uniapp的安卓app打包(本地离线)
文章图片

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

这就是我们的 AppKey
uniapp的安卓app打包(本地离线)
文章图片

安卓相关配置 文件位置: https://nativesupport.dcloud....
uniapp的安卓app打包(本地离线)
文章图片

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

    uniapp的安卓app打包(本地离线)
    文章图片
导入项目 打开 Android Studio, 打开已经存在的项目( Open an Existing Project )
注意,第一次打开可能需要等待很长时间,Android Studio正在导入相关文件
uniapp的安卓app打包(本地离线)
文章图片
项目配置 删除项目原本文件 点击显示详细目录
uniapp的安卓app打包(本地离线)
文章图片

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

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

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

最终效果
uniapp的安卓app打包(本地离线)
文章图片

设置 APPID 打开 manifest.json ,复制 id
uniapp的安卓app打包(本地离线)
文章图片

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

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

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

设置证书 uniapp的安卓app打包(本地离线)
文章图片

  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打包(本地离线)
    文章图片

  1. AndroidManifest.xml
    package内的值和 build.gradle 文件中的值一样
    uniapp的安卓app打包(本地离线)
    文章图片

修改 provider 【uniapp的安卓app打包(本地离线)】打开 AndroidManifest.xml,查找 android:authorities , 修改值为 xxx.xxx.xxx.fileprovider
此处我修改为 com.leonard.app.fileprovider
uniapp的安卓app打包(本地离线)
文章图片

打包 APK Build -> Build Bundle(s) / APK(s) -> Build APK(s)
uniapp的安卓app打包(本地离线)
文章图片

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

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

END

    推荐阅读