从零搭建一个uniapp并在本地在线_离线打包

1,166 阅读7分钟

一、uni-app

uni-app 是一个使用 [Vue.js](https://vuejs.org/) 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

1、创建一个uniapp项目

创建一个uniapp项目有两种方式:可视化界面 和命令行。

1)通过HBuilderX可视化界面创建:

需要先下载一个[HbuilderX](https://www.dcloud.io/hbuilderx.html) 的编辑器

点击工具栏中的文件->新建->项目

出现了新建uni-app项目, 填写项目名称并选择一个默认模板创建, 这里我以demo示例:

新建好了项目,一下是一些简单的说明:

我们在代码里面引入uni-ui的模板,可以查看官网: uniapp.dcloud.net.cn/component/u… ,引入对应的ui模块, 然后写一些demo, 页面展示:

2)通过vue-cli 的方式创建uni-app

可查看官网:[https://uniapp.dcloud.net.cn/quickstart-cli.html](https://uniapp.dcloud.net.cn/quickstart-cli.html)

2、运行uni-app项目

在工具栏中选择 运行->运行到浏览器->Chrome

运行完成之后会自动跳到浏览器中, 当然我们也可以看到控制台有输出启动后的浏览器地址:

浏览器中F12, 并且切到手机模式, 就可以看到我们运行出来的代码啦~

当然上面只是开发经常使用, 在浏览器中可以直接看到, 但是某些api只能在真机上使用, 可以通过以下操作运行到真机上使用

二、在线云打包

1、先获取自己项目的appId

![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732507454843-2d7191de-325c-491b-85e2-f372d8d33cd2.png)

2、选择工具栏-->发行-->App-Andriod/IOS - 云打包

![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732507470957-970dd585-9c34-4eda-b58f-764e6e7d0de4.png)

3、选择云端证书, 然后点击打包

![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732507522220-79c5e1de-0218-4703-b80e-b7a0f672e42d.png)

4、选择继续打包

![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732507540298-46668222-98c1-47d9-bc90-0de5c404edad.png)

打包成功之后就可以看到生成的apk了, 之后就可以安装了

三、本地离线打包

由于有时候用云打包碰上高峰期, 尤其是周二、周四、周五的时候会排队时间特别长, 需要等待差不多一个小时, 这个时候我们可以离线打包, 步骤如下:

1、离线打包所需要的:

+ 安装软件:[Android Studio](https://developer.android.google.cn/studio/index.html) + 下载SDK:[App离线SDK](https://nativesupport.dcloud.net.cn/AppDocs/download/android.html)(一定要注意离线SDK一定要和你的HbuilderX版本号一致, 否则会有兼容性的问题) ![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732507633249-5a123fc6-f05e-410c-9442-669fa3048e2c.png) ![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732507646120-c41ecc7a-c9e7-4b4d-a015-c06b6a275abf.png) + 获取Appkey:[Appkey](https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey.html) 查看Appkey, 需要登录[开发者中心](https://dev.dcloud.net.cn/),在应用管理 - 点击应用 - 各平台信息 创建以及查看离线AppKey: ![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732507658657-994981d8-366e-4aab-8f35-bb98f5637572.png)

在这里可以看到离线打包Key, 但是这里创建需要获取SHA1, 生成SHA1 需要有JAVA的环境, 假设我们本地电脑已经安装了JAVA环境,那么可以用以下命令:

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore

参数解释:
• keytool:Java 提供的密钥和证书管理工具,用于创建和管理密钥库(keystore)和证书。
• genkey:指示 keytool 生成一对新的密钥(公钥和私钥),并创建一个自签名证书。
• alias testalias:为密钥条目指定一个别名(名称),这里是 testalias。别名用于在密钥库中标识特定的密钥或证书。
• keyalg RSA:指定生成密钥对所使用的算法,这里是 RSA 算法。
• keysize 2048:指定密钥的长度(以位为单位),这里是 2048 位。更大的密钥长度通常意味着更高的安全性。
• validity 36500:指定生成的自签名证书的有效期(以天为单位),这里是 36500 天,即 100 年。
• keystore test.keystore:指定要创建或修改的密钥库文件名,这里是 test.keystore。如果文件不存在,将创建新的密钥库文件。

运行之后, 按照命令行填写信息:

上面出现了不是标准格式的,可以用下面的命令行重新修改为PSKS12格式的:

keytool -importkeystore -srckeystore test.keystore -destkeystore test.keystore -deststoretype pkcs12

也可以使用以下命令直接生成PSKS12格式的证书:

keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.p12 -storetype PKCS12

- storetype PKCS12:指定密钥库的类型为 PKCS12

- keystore test.p12:将密钥库保存为 test.p12,扩展名通常为 .p12 或 .pfx,表示 PKCS12 格式

之后我们运行下面的命令, 可以查看证书的相关信息:

bash keytool -list -v -keystore test.keystore

从上面的信息中, 我们可以看到,别名、SHA1、SHA256(记住这几个)需要用到, 我们依然打开开发者中心, 选择自己的应用:在各平台信息中, 将上面截图的信息填入进去:

点击提交之后,返回到列表页面, 再 点击创建离线打包Key

创建成功之后, 可以查看到我们生成的appKey

这样所有的准备工作就做好了

2、解压缩我们下载好的SDK

![](https://cdn.nlark.com/yuque/0/2024/png/38750627/1732510965565-fea38d80-ba1c-43b0-8a04-bba915ad138d.png)

这里我们使用UniPlugin-Hello-AS 做一个demo, 将这个文件夹放到平时经常使用的workspace中, 打开Android Studio 编辑器:

打开AndriodManifest.xml 文件, 找到对应标签, name为dcloud_appkey ,将自己的appKey填入到这里

找到build.gradle 文件(app下面的这个文件):

将我们在开发者中心应用的包名填入到这里来:

我们点击一下上面的sync now 看看有没有什么问题。 可以看到下面是暂时没问题的。

接下来将我们之前生成的证书放到这个项目里面来:(该文件就是生成之后, 在开发者中心的应用里面写入的SHA1 的这个文件, 我们生成的appkey 和这个文件是有关系的)

还是在build.gradle文件中找到signingConfigs 签名设置, 将之前的别名和密码填入, 然后点击文件上方的Sync now, 重新加载一下, 如果没有报错, 可进行下一步, 如果有报错, 说明文件别名和密码有不对的

3、生成本地打包App 资源

接下来, 在HBuilderX 编辑器中, 工具栏-- > 发行 → App-Android/IOS本地打包, 点击生成本地打包App 资源

打包好了之后,会生成一个文件包:

首先我们到Andriod Studio 编辑器里面在app/assets/apps 的文件夹下面, 将里面已有的文件夹删除掉:

将上面我们在HbuilderX编辑器里面打包好的本地离线包放入到这里来:

接下来在data/dcloud_control.xml 文件中将我们的文件夹名称放入到appid里面去

在这里可以修改app的名称

也可以替换生成App的图标

  • 图标名称

icon.png为应用的图标。

push.png为推送消息的图标。

splash.png为应用启动页的图标。

4、运行

可以使用真机运行,如果电脑有虚拟的app, 也可以连接, 来查看下我们配置的对不对:

点击运行后发现有提示我们设备的问题,在这里, 根据他提示的设备加入到这个里面来:

点击上面的运行, 能够看到虚拟的app上面有展示:

接下来就直接打包啦:点击工具栏中的Build –> Generate Signed App Bundle/APK

选择APK, 点击 Next

这里我们要选择之前我们放在这个项目里面的test.keystore文件, 依次填上之前的别名和密码

填完了之后点击 Next, 之后, 我们选择要打包的版本, 比如release, 点击Create

发现版本有问题, 我们设置为21

发现改成21依然报错, 我们这里用33 版本的, 就不会有报错了,

在RebuildProject 时, rich-alert 的包有报错, 我们不用的话可以先注释掉:

再次重新打包:下方出现有这个代表打包成功, 点击locate, 能到文件夹里面去, 可以看到生成的apk了

这样就可以再手机上接收到apk文件打开看了