一、简介
-
App离线SDK暂时不支持Kotlin,未来不清楚。 -
uniapp提供了云打包与本地打包两种方案,云打包需要排队且还有次数限制,本地打包则就没有这些限制,而且会本地打包对开发原生插件有很大的帮助。
-
细节:需要
Android Studio打包的时候,记得先通过工具栏的Build -> 先 Clean Project -> 再 Rebuild Project -> 最后在打包或运行,生成基座或者测试离线包都适用这套流程。
二、准备工作
-
按照官方文档中的
开发环境下载好开发工具与SDK工程即可:Android 离线打包选了方式二:导入工程 方式,官方文档地址。注意:
HBuilder X 3.5.0及以上版本新增库breakpad-build-release.aar注意:
HBuilder X 3.8.7及以上版本新增库install-apk-release.aar,上架谷歌应用市场不能包含此库,更多参考文档我下载这个版本包好像没有
install-apk-release.aar,那就不用管,大多数的配置官方提供的工程中就已经配置好了,这边只把需要修改的罗列一下,当然最好通过本文结合官方文档来对照走步骤更好。

-
下载的
Android工程目录结构介绍,找到HBuilder-Integrate-AS离线打包工程,可以拷贝出来使用Android Studio打开该工程。

-
打开工程后,先按 Android 老项目新人如何快速入手跑起来 这篇文章快速的配置一下基础环境。
-
如果跑出下面这样的结果,非报错都先不要管,警告随他先。

-
如果需要重新编译项目可以在这里进行,或者使用
Build工具栏里面刷新按钮也是一个效果。
三、创建 Uniapp 测试项目
-
使用
HBuilderX或Cli创建一个测试项目demo,然后运行到测试机或者模拟器。附:Uniapp 运行到 Android 真机或模拟器。1、确认当前模拟器或者真机支持的
cpu类型,然后进行勾选,这里就是配置要打包的apk需要支持哪些cpu类型的手机,全要支持可以全支持。附:adb 查看安卓手机、模拟器、apk包所支持的 CPU 类型(armeabi、armeabi-v7a、arm64-v8a …)反正就是勾的越多,打的包越大,你可以测试时用哪个勾哪个,等发包了在根据需要支持的手机市场进行勾选。

2、测试项目正常运行后,则进行本地打包,获得编译后的源码。

3、看控制台,等待编译完成,去给出的目录找到编译后的源码。

4、替换离线打包工程中的源码


5、修改
dcloud_control.xml文件里面的appid,其实离线资源文件夹名称就是appid,可以核对下免得出错。

四、离线工程的调整
-
代码导入后,需要进行一些离线打包工程上的细节调整。
-
包名替换,例如
com.dzm.test
-
[可选]
compileSdkVersion修改,compileSdkVersion 30是Android项目中的一个配置项,定义了 编译时使用的 Android API 级别(即Android SDK版本),表示你正在使用 API 级别 30(对应 Android 11,即Android 11)。
-
版本号修改,跟
HBuilderX -》manifest.json中的版本号保持一致。
-
签名配置,也就是证书相关信息
1、打开 Uniapp 开发者后台,登录一下。


2、点击应用名称进入,找到
Android 云端证书,创建一个,稍微等待一下,需要刷新一下网页就能看到创建好的证书信息了,然后下载证书,放到HBuilder-Integrate-AS离线打包工程根目录。


3、复制证书的绝对路径,并替换配置中的证书路径



4、配置证书别名、密码



5、配置打包的
apk需要支持的cpu类型ndk { abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a' }
-
申请
Appkey,如果没有则需要申请一下,有则可以直接拷贝,需要前往 Uniapp 开发者后台:

点击
新增后,需要填的资料中包名按上面的一样,版本可以根据情况来,创建正式与测试两个切换使用,Android 应用签名SHA1值与Android 应用签名SHA256值在上面的证书详情中有,拷贝贴过来即可。其他根据需要可填可不填。

然后创建一个
AppKey并拷贝:

将
AppKey配置到离线工程中:
这个文件顶部的包名也要改一下,保持同步:

-
配置图标,不同分辨率可以按官方文档上的,多建几个文件夹配置。


-
配置应用名称,需要保持一致

五、离线工程试跑
-
创建好虚拟机,点击调试项目

如果报错 Execution failed for task ‘:simpleDemo:stripDebugDebugSymbols’. NDK at /Users/dengzemiao/Library/Android/sdk/ndk-bundle did not have a source.properties file 点这里。
-
解决问题再次点击调试按钮,项目跑成功了,如果
uniapp重复打包导入项目后,最新内容没生效,可以删掉模拟器上安装好的包,重新运行安装一下。
六、离线自定义基座打包
-
Uniapp Android 离线生成自定义基座(详细流程)
-
Uniapp Android 离线生成自定义基座(官方文档)



















