uniapp 证书 打包上线GooglePlay app自动升级
uniapp Android证书 打包上线GooglePlay app自动升级
1.Android证书申请
要安装jdk并配置环境变量。
keytool -genkey -alias android -keyalg RSA -validity 36500 -keystore android.keystore
android:证书别名
android.keystore:证书名称
36500:时间,单位天
证书密钥很重要一定要记住。

到这里已经创建好了,新建的证书时间100年,上Googleplay证书时间不能低于25年。
查看证书信息,在 jieshenmode.keystore 文件的文件夹下输入命令行:
keytool -list -v -keystore jieshenmode.keystore
C:\Users\admin>keytool -list -v -keystore jieshenmode.keystore
输入密钥库口令:
密钥库类型: jks
密钥库提供方: SUN 您的密钥库包含 2 个条目 别名: jieshenmode
创建日期: 2020-11-18
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=sandaoliu, OU=****, O=****, L=****, ST=**, C=**
发布者: CN=sandaoliu, OU=****, O=****, L=****, ST=**, C=**
序列号: a79c913
有效期为 Wed Nov 18 11:25:09 CST 2020 至 Fri Oct 25 11:25:09 CST 2120
证书指纹:
MD5: ********************************
SHA1: **************************************
SHA256: *************************************************88
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3
2.上线Googleplay
上线Googleplay会遇到一下问题,
1.您上传的 APK 或 Android App Bundle 所使用的签名证书不久就会过期,请使用有效期更长的证书为 APK 或 Android App Bundle 签名。详细了解签名。
2.您的应用目前的目标 API 级别为 26,但其目标 API 级别必须最低为 29,这样才能确保应用基于最新 API 而构建,让安全性和性能达到最佳状态。请将应用的目标 API 级别至少更改为 29
3.此版本不符合 Google Play 关于提供 64 位版本应用的要求。以下 APK 或 App Bundle 面向 64 位设备,但只有 32 位原生代码:请向应用中添加 64 位和 32 位原生代码。使用 Android App Bundle 发布格式可自动确保每种设备架构仅收到所需的原生代码。这样可避免增加应用的总大小。
解决方法:
1.生成证书的时候年限弄到100年
2.uniapp项目的manifest.json里面的App常用其他配置里面修改支持cpu类型和targetSdkVersion的级别。
/* 模块配置 */
"distribute" : {
/* 应用发布信息 */
"android" : {
"abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],
"targetSdkVersion" : "29"
},
}
配置好以后如下图:

最后在打包的时候,在渠道包勾选GooglePlay,打出的包就可以正常上应用了:

3.uniapp自动升级
打包的时候会有一个版本号,每一次重新打开app的时候判断存储的版本号,如果不一致,则下载后台返回的新app地址,下载后自动安装。这个版本没有提示直接下载的。
// #ifdef APP-PLUS
var server = baseUrl + "/tiny-shop/v1/site/app-update"; //检查更新地址
uni.request({
url: server,
data: {appCurrentVer:plus.runtime.versionCode},
method:'POST',
success: res => {
console.log(res)
if (res.statusCode == 200 && res.data.code == 200) {
let data = res.data.data;
if (plus.runtime.versionCode == data.current) {
} else {
var dtask = plus.downloader.createDownload(data.download, {}, function(d, status) {
// 下载完成
if (status == 200) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename), {}, {}, function(error) {
uni.showToast({
title: '安装失败',
mask: false,
duration: 1500
});
})
} else {
uni.showToast({
title: '更新失败',
mask: false,
duration: 1500
});
}
});
dtask.start();
var prg = 0;
var showLoading = plus.nativeUI.showWaiting("正在下载"); //创建一个showWaiting对象
dtask.addEventListener('statechanged', function(task,status){
// 给下载任务设置一个监听 并根据状态 做操作
switch (task.state) {
case 1:
showLoading.setTitle("正在下载");
break;
case 2:
showLoading.setTitle("已连接到服务器");
break;
case 3:
prg = parseInt((parseFloat(task.downloadedSize) /parseFloat(task.totalSize)) *100);
showLoading.setTitle("正在更新下载" + prg + "% ");
break;
case 4:
plus.nativeUI.closeWaiting();
//下载完成
break;
}
});
} }
}
})
// #endif
uniapp 证书 打包上线GooglePlay app自动升级的更多相关文章
- Ionic4.x、Cordova Android 检测应用版本号、服务器下载文件以及实现App自动升级、安装
Android App 升级执行流程 1.获取本地版本号 2.请求服务器获取服务器版本号 3.本地版本和服务器版本不一致提示升级,弹窗提示用户是否更新 4.用户确定升级,调用文件传输方法下载 apk ...
- hbuilder 开发app 自动升级
使用huilder 开发app ,实现app升级功能 1. var wgtVer = null; //用于获取系统当前版本 var currentversion = null; //用于获取系统最新 ...
- 安卓App自动升级
procedure _InstallApk(Apk: string); var LFile: JFile; LIntent: JIntent; begin LFile := TJFile.JavaCl ...
- ionic 实现自动升级APP
最近做移动商城开发,需要一个自动升级APP的功能,在网上搜罗很多,发现有的是下载APK,有的在我这服务无法实现,由于时间原因,都被PASS了,最后找到了一个热更新插件,经过半天的调试,可以使用,很欣喜 ...
- C# ActiveX 网页打包验证自动升级
原文地址:http://www.cnblogs.com/yilin/p/csharp-activex.html 注意事项:Win10下需要设置兼容模式,F12仿真切换到IE6-8(版本参考——BT90 ...
- uni-app 实战-打包 📦 App
uni-app 实战-打包 App Android & iOS 证书 广告 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问 ...
- Ionic实战 自动升级APP(Android版)
Ionic 框架介绍 Ionic是一个基于Angularjs.可以使用HTML5构建混合移动应用的用户界面框架,它自称为是"本地与HTML5的结合".该框架提供了很多基本的移动用户 ...
- 下载企业级证书打包的app 出现“正在下载”或“等待中”的图标并且无法删除的问题
下载企业级证书打包的app 出现“正在下载”或“等待中”的图标并且无法删除的问题: 原因分析:手机上的bundleid 与后台plist文件中的bundleid不一致导致的. 解决方案:用plist文 ...
- 下载企业级证书打包的app 出现“无法下载应用程序”的问题
问题描述:在下载企业级证书打包的app 出现“无法下载应用程序”的问题 解决办法:原来是生成plist文件时,设置url犯了一个致命的低级错误.如下
随机推荐
- es 迁移数据, 重建索引
原索引 PUT my_index { "mappings": { "_doc": { "properties": { "creat ...
- PHP程序员必须会的 45 个PHP 面试题
Q1: == 和 === 之间有什么区别? 话题: PHP困难: 如果是两个不同的类型,运算符 == 则在两个不同的类型之间进行强制转换 === 操作符执行'类型安全比较' 这意味着只有当两个操作数具 ...
- suse使用镜像源
创建挂载目录,随便建个目录 mkdir /mnt/cdrom 光盘连上,挂载光盘 mount -t iso9660 /dev/sr0 /mnt/cdrom/#确保挂上了ls看看/mnt/cdrom是否 ...
- RocketMQ主从搭建
RocketMQ可分为以下几种模式: 单点模式 主从模式 双从模式 双主双从模式,多主多从模式 搭建主从模式 tar -zxvf rocketmq-4.6.0.tar.gz -C /usr/local ...
- ORACL-重做日志详解
作用:oracle重做日志主要目的是数据恢复及数据修改效率提升 前言:oracle重做日志主相关视图: 1.v$log记录当前数据库重做日志组 2.v$logfie记录当前数据库重做日志组状态.类型等 ...
- 如何实现一个FormData
一.前言 最近项目中遇到一个问题,我们需要在cocos项目里去上传音频文件,而cocos原生环境和平时我们开发所在的浏览器环境和Node环境有很多差异,而cocos环境只提供了基础类,没有提供Form ...
- 稳压二极管、肖特基二极管、静电保护二极管、TVS管
1.稳压二极管 正向导通电压跟普通二级管一样约为0.7v,反向状态下在临界电压之前截止,在达到临界电压的条件下会处于导通的状态,电压也不再升高,所以用在重要元器件上,起到稳压作用. 稳压二极管主要利用 ...
- Zeal(文档)安装使用
Zeal是一个为软件开发者提供的离线文档浏览器. 一.下载安装 下载地址:https://zealdocs.org/ 二.安装后下载自己需要的文档 1.通过Zeal原生源直接下载文档 Tools -& ...
- uniapp swiper高度自适应问题
这里的话是想做一个比较常见的左右滑动更改tab的效果,引用了uview-ui中的u-tabs-swiper组件,需要结合swiper组件来使用 先来讲下主体思路:每个tab页(swiper-item) ...
- ubuntu20.04 编译安装ckermit
ubuntu20.04编译安装ckermit 我呢之前一直使用的是ubuntu18.04,最近在安装了某个软件之后,再加上自己的操作不当最终导致ubuntu系统卡死无法进入桌面环境,早就想更新20.0 ...