一、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
2、选择工具栏-->发行-->App-Andriod/IOS - 云打包
3、选择云端证书, 然后点击打包
4、选择继续打包
打包成功之后就可以看到生成的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版本号一致, 否则会有兼容性的问题)   + 获取Appkey:[Appkey](https://nativesupport.dcloud.net.cn/AppDocs/usesdk/appkey.html) 查看Appkey, 需要登录[开发者中心](https://dev.dcloud.net.cn/),在应用管理 - 点击应用 - 各平台信息 创建以及查看离线AppKey: 在这里可以看到离线打包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
这里我们使用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文件打开看了