很多时候uniapp打包使用hbuildx的云打包都能满足了,但架不住周五或者要下班的时候云打包人数巨多,排队四五十分钟的情况。这么长的排队时间岂不是严重的影响了下班的喜悦心情。所以离线打包这时候就显得格外的香了。
特别注意:3.1.10版本起需要申请Appkey,具体请点击链接
如果你是android开发者或者有android的开发经验,那么你可以直接从项目配置开始操作,如果没有接触过android开发或者android studio(后面简称as)等开发软件,那么你就重第一步开始操作,前面几步都是配置离线打包环境的。
1、前置准备:
1.1、安装as开发软件,从这里下载。从这里下载,也许你的网络打开会有点慢,可以自行翻墙。
打开网址后点击这个,
然后在根据系统选择对应的studio版本,我这里是win64的所以我下载对应的windows版本的as。
下面的zip版本是全资源的版本,可以不用管它。
下载完成后安装as,配置android开发环境并安装as教程看这里
1.2、下载最新版本的hbuildx开发软件。点击这里下载hbuildx。
下载对应系统的的开发版并安装(安装hbuildx不需要配置什么环境,直接选择目录安装即可)。
1.3、下载与hbuildx对应的android离线打包sdk,点击这里下载,,切记在下载离线打包sdk的时候看下你已经安装的hbuildx是什么版本要和sdk版本对应,对应关系这里看
,这里有个情况,有时候是hbuildx已经升级更新到一个新的版本了吗,但是离线打包sdk还没有unicloud团队还没有放出来,这时可以选择等两天,等官方团队发布最新的离线sdk或者重新下载hbuildx的上一个版本。至此准备工作已经完成。
2.项目配置:
2.1、选中要打包的hbuildx项目,点击发行->选择原生APP-本地打包->生成本地打包APP资源
等到本地打包资源生成完毕。
,点击这里获取到本地打包资源,然后回退上两级到
这一层级,这一层级的这个文件夹后面打包的时候需要用到。hbuildx这边的工作就完成了。
2.2、打开前面准备工作中的下载的最新离线打包sdk里面的项目并找到HBuilder-Integrate-AS项目文件
,然后用as导入该项目文件,
等待编译完成。
2.3、找到项目中的build.gradle文件,并删除红框部分。
,修改后需要点击右上角的sync now待项目同步完成。然后找到assets目录下的apps文件夹,删除里面的所有文件,只保留一个apps空文件夹
然后在把2.1中生成的本地资源文件(回退到以_UNI_xxxxx为名称的哪一层文件夹)整个复制到as打开的模板项目中的apps文件夹下面。文件夹名称不可更改,生成的名称是什么就是什么。
2.4、找到和apps同级的data目录,然后打开dcloud_control文件,并修改appid为你复制过来的文件夹名称(_UNI_xxxxx)
,到这里资源文件配置完成了。
2.5、如果你不需要自定义配置包名请跳过此步骤,找到2.3步骤中的build.gradle文件,
修改这里为你想要的包名,如com.test.dydemo
,修改后需要点击右上角的sync now待项目同步完成。
2.6、到了打包的最后两步了,以前在hbuildx中直接云打包有些同学直接就是dcloud的公共测试文件就在打包,这样是不好的,所以这里我们本地打包的时候就自己生成签名的key文件,也方便后版本更新发布不会有签名文件冲突问题。
3、生成apk签名文件并打包uniapp本地离线apk
3.1、as中点击build,选择generate singled bundle or apk,
3.2、选择第二项apk,点击next
3.3、key store path 为你的签名文件地址,如果还没有可以点击下方的create new...按钮,然后选择你要创建的key地址(如果已有签名文件,请直接选择你的签名文件)