uniapp打包成apk
昨天借助了
uniapp云打包
的力量实现了线上打包;今天去实现以下本地打包
,后来发现本地打包是真的复杂,就连麦克阿瑟将军都曾说到,如果让我用uniapp本地打包,那我宁愿将枪口指向上帝。
ps:每位道友可能遇到的环境不同,并不一定适合所有人的环境
软件准备
1. 安卓编辑器下载
2. 安卓编辑器汉化教程
3. 安卓SDK
一个uniapp项目,这里使用的是Hello uni-app并去除了某些权限具体可以看这里调试打包
3.1.10版本起需要申请Appkey,具体请点击链接
信息准备
证书的获取和应用申请
可以看这里调试打包
证书也可以使用香蕉云编的:https://www.yunedit.com/
在获取证书和包名后还需要收集以下信息
- AppID
- Android
进入应用详情,然后点击离线打包Key,就能看到AppID和Android了
最终需要准备的信息有
名称 | 值 |
---|---|
AppID | __UNI__9D075DF |
包名 | com.android.firstapp |
Android | 563bc4d4cebc6e13e0d3c4ca08318359 |
证书别名 | dbtest |
证书密码 | 123456 |
MD5 | 47:8B:A7:96:8A:2F:26:20:0D:AD:E4:69:F1:AB:E3:C6 |
SHA1 | 2A:00:C4:EB:8A:0A:EB:46:AD:E9:71:C9:4C:20:F9:4D:17:CD:38:97 |
SHA256 | 27:7F:87:25:8D:61:92:B7:19:82:C7:F3:0C:55:55:5C:78:E1:CE:87:EF:94:A3:E8:09:87:56:1E:5C:CF:A7:EA |
开始本地打包
1. 项目打包
- 进入HBuilder找到manifest.json文件,点击源码视图,看下
appid
是否和上面准备的AppID一致,不一致就改本地的
- 点击发行,选择原生App-本地打包,
打包完成后解压一开始下载的SDK包,并找到__UNI__A
文件夹,用刚才打包好的文件夹替换该文件夹,具体如下图所示
2. 项目导入
- 下载安装Android Studio并汉化(可选)
点击open打开,找到HBuilder-Integrate-AS
并打开该项目
3. 导入失败( 处理方法 )
如果你导入后发现,有报错并且侧栏是这个样子,则很有可能是本地jdk没配置好
- 点击文件选择设置如图找到构建工具
Gradle
这里,选择对应的JDK,1.8安装,选择后点击应用
并确定
- 然后再次点击文件选择
Sync Project with Gradle Files
,构建后没有报错,侧栏如下图所示则成功
如果这里提示Gradle下载超时,可以看这篇文章
https://blog.csdn.net/qq_42257666/article/details/117398185
另外gradle下载地址:https://services.gradle.org/distributions/
4. 修改文件信息< 易错点 >
- 首先将目录调整成这个样子
- 打开
dcloud_control.xml
,将appid修改为应用的AppID
- 打开
AndroidManifest.xml
将文件顶部的package
修改为你的包名,将文件底部的android:value
修改为你的Android
- 打开
Gradle Scripts
文件夹找到build.gradle(Module:simpleDemo)
文件,安装下面进行配置
- 关于证书的位置,我门需要将证书文件放到下面这里(这里只能通过文件夹去放,通过Androidstudio放进去看不到)
5. 打包
点击构建选择Generate Signed Bundle / APK...
选择apk点击下一步
选择release点击创建
当打包完成后可以在release文件夹中找到apk文件
今天熟悉了本地打包的基本流程,小道已无力探索,若各位道友有兴趣,可以看更详细的本地打包配置
问题参考
https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey.html#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98