uniapp - 安卓版离线打包

官方文档地址

hbuilderx -- 3.5.3
离线SDK -- 3.6.4
Java -- 11.0.13 2021-10-19 LTS
Android Studio -- 4.2.2

准备工作:需提前安装好Android Studio 和 JRE环境

1. 申请Android签名证书
  • 在工作目录下打开命令行
  • 使用 keytool -genkey 命令生成证书
keytool -genkey -alias ${证书别名,任意设置,建议使用英文字母和数字} -keyalg RSA -keysize 2048 -validity 36500 -keystore ${证书文件名称,任意设置,以.keystore结尾}

// 36500是证书的有效期,表示100年有效期,单位天,建议时间设置长一点,避免证书过期
# test @ testdeMacBook-Pro in ~/desktop/androidtest [10:02:43]
$ keytool -genkey -alias myanothername -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
输入密钥库口令:  // 输入证书文件密码
再次输入新口令: // 再次输入证书文件密码
您的名字与姓氏是什么?
  [Unknown]:  test
您的组织单位名称是什么?
  [Unknown]:  test
您的组织名称是什么?
  [Unknown]:  test
您所在的城市或区域名称是什么?
  [Unknown]:  test
您所在的省/市/自治区名称是什么?
  [Unknown]:  test
该单位的双字母国家/地区代码是什么?
  [Unknown]:  test
CN=lu, OU=test, O=test, L=test, ST=test, C=test是否正确?
  [否]:  y

以上命令运行完成后就会生成证书


image.png
  • 查看证书信息
keytool -list -v -keystore ${证书文件名称}
# test @ testdeMacBook-Pro in ~/desktop/androidtest [10:04:20]
$ keytool -list -v -keystore test.keystore
输入密钥库口令:  // 输入证书文件密码
密钥库类型: PKCS12
密钥库提供方: SUN

您的密钥库包含 1 个条目

别名: myanothername
创建日期: 2022年10月19日
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=lu, OU=test, O=test, L=test, ST=test, C=test
发布者: CN=lu, OU=test, O=test, L=test, ST=test, C=test
序列号: 5ca29c6f
生效时间: Wed Oct 19 10:04:19 CST 2022, 失效时间: Fri Sep 25 10:04:19 CST 2122
证书指纹:
   SHA1: 3C:4E:38:21:23:F2:27:DC:FD:70:D4:5C:80:F7:04:85:12:80:59:E9
   SHA256: F1:CE:AA:32:FF:AC:0A:24:E0:BF:9F:08:14:1D:25:83:65:6B:62:F8:85:C7:5C:8E:B0:D4:21:5B:DE:57:68:5F
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
2. 申请AppKey
  • 登陆dcloud开发者中心
    image.png
  • 输入包名和SHA1(包名自定义,SHA1查看上一步的证书信息可得),获取离线打包配置中的AppKey


    image.png
3. HbuilderX 生成本地打包App资源
  • 发行 --> 原生App-本地打包 --> 生成本地打包App资源
  • 提示编译完成后,点击路径跳转到编译的文件夹


    image.png

    image.png
4. 下载Android离线SDK
  • 下载Android离线SDK-正式版,压缩包解压一下
    image.png
    |-- HBuilder-HelloUniApp                App离线打包演示应用
    |-- HBuilder-Integrate-AS               集成uni-app的最简示例
    |-- SDK                                 SDK库文件目录
    |-- Feature-Android.xls                 Android平台各扩展Feature API对应的详细配置
    |-- readme                              版本说明文件及注意事项
    |-- UniPlugin-Hello-AS                  uni原生插件开发示例
  • 把默认带的文件夹删除,替换成第三步打包的文件夹即可!
    HBuilder-Integrate-AS/simpleDemo/src/main/assets/apps
    image.png
  • App离线打包SDK只需要 HBuilder-Integrate-AS 这个文件夹,直接在Android Studio中导入 HBuilder-Integrate-AS 工程,直接运行simpleDemo项目即可(编译过程中,会下载相关依赖包,若出现报错“org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$Artifact” Could not resolve all artifacts for configuration ':classpath'.,可参考这篇文章)
  • 找到项目中的 build.gradle,并删除红框部分。
    image.png
  • 找到项目中的 dcloud_control.xml,更换当前应用的appid
    image.png

    image.png
  • 找到项目中的 strings.xml,更换当前应用的名字
    image.png
  • 项目中相关图标设置


    image.png
  • 更换当前应用的Appkey


    image.png
  • 更换当前应用中的相关参数


    image.png
  • 更换当前应用的包名


    image.png
5. 生成打包apk
image.png

image.png
  • 证书文件是第一步获取的签名证书
image.png

image.png
  • 打包成功 - 在编辑器的底部 build 栏查看打包状态
image.png

image.png
6. App模块配置
高德地图
  • 创建key --- key名称自定义、SHA1和包名(和获取appkey的配置一致)
    image.png

    image.png
  • manifest.json 重新配置后需要重新生成本地打包App资源
image.png
  • 修改AndroidManifest.xml 文件
    HBuilder-Integrate-AS/simpleDemo/src/main/AndroidManifest.xml
    image.png

    image.png

参考文章:https://blog.csdn.net/hkw20/article/details/121063641

你可能感兴趣的:(uniapp - 安卓版离线打包)