一、简介
-
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 离线生成自定义基座(官方文档)