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自动升级的更多相关文章

  1. Ionic4.x、Cordova Android 检测应用版本号、服务器下载文件以及实现App自动升级、安装

    Android App 升级执行流程 1.获取本地版本号 2.请求服务器获取服务器版本号 3.本地版本和服务器版本不一致提示升级,弹窗提示用户是否更新 4.用户确定升级,调用文件传输方法下载 apk ...

  2. hbuilder 开发app 自动升级

    使用huilder 开发app  ,实现app升级功能 1. var wgtVer = null; //用于获取系统当前版本 var currentversion = null; //用于获取系统最新 ...

  3. 安卓App自动升级

    procedure _InstallApk(Apk: string); var LFile: JFile; LIntent: JIntent; begin LFile := TJFile.JavaCl ...

  4. ionic 实现自动升级APP

    最近做移动商城开发,需要一个自动升级APP的功能,在网上搜罗很多,发现有的是下载APK,有的在我这服务无法实现,由于时间原因,都被PASS了,最后找到了一个热更新插件,经过半天的调试,可以使用,很欣喜 ...

  5. C# ActiveX 网页打包验证自动升级

    原文地址:http://www.cnblogs.com/yilin/p/csharp-activex.html 注意事项:Win10下需要设置兼容模式,F12仿真切换到IE6-8(版本参考——BT90 ...

  6. uni-app 实战-打包 📦 App

    uni-app 实战-打包 App Android & iOS 证书 广告 refs xgqfrms 2012-2020 www.cnblogs.com 发布文章使用:只允许注册用户才可以访问 ...

  7. Ionic实战 自动升级APP(Android版)

    Ionic 框架介绍 Ionic是一个基于Angularjs.可以使用HTML5构建混合移动应用的用户界面框架,它自称为是"本地与HTML5的结合".该框架提供了很多基本的移动用户 ...

  8. 下载企业级证书打包的app 出现“正在下载”或“等待中”的图标并且无法删除的问题

    下载企业级证书打包的app 出现“正在下载”或“等待中”的图标并且无法删除的问题: 原因分析:手机上的bundleid 与后台plist文件中的bundleid不一致导致的. 解决方案:用plist文 ...

  9. 下载企业级证书打包的app 出现“无法下载应用程序”的问题

    问题描述:在下载企业级证书打包的app 出现“无法下载应用程序”的问题 解决办法:原来是生成plist文件时,设置url犯了一个致命的低级错误.如下

随机推荐

  1. centos7虚拟机时间和本地时间相差8小时

    安装ntp和ntpdate 在安装centos7虚拟机的时候,已经将时区设置为了Asia/shanghai,但还是出现时间不准,相差了8小时 可以安装ntp和ntpdate,使用 NTP 公共时间服务 ...

  2. Jenkins集成appium自动化测试(Windows篇)

    一,引入问题 自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天.代码更新后.项目上线前定时执行,才能达到最好的效果,这时就需要进行Jenkins集成. 不像web UI自动化测试可以使 ...

  3. 【嵌入式】C语言高级编程▁▁▁嵌入式C语言入门编程学习!

    ✍  1.C 语言标准 什么是 C 语言标准呢? 我们生活的现实世界,就是由各种标准构成的,正是这些标准,我们的社会才会有条不紊的运行. 比如我们过马路,遵循的交通规则就是一个标准:红灯停,绿灯行,黄 ...

  4. 【图论】USACO07NOV Cow Relays G

    题目大意 洛谷链接 给定一张\(T\)条边的无向连通图,求从\(S\)到\(E\)经过\(N\)条边的最短路长度. 输入格式 第一行四个正整数\(N,T,S,E\),意义如题面所示. 接下来\(T\) ...

  5. 生物信息-McScan(Python-jcvi)共线性画图

    比较基因组学中,共线性的分析的图无疑是最漂亮的. 共线性分析可以很好地解释进化关系和多倍化事件. 本文主要介绍的是唐老师的Python版McScan(jcvi工具包),这个包很强大,但是其功能在官网的 ...

  6. ASP.NET 获取客户端IP地址

    我们用Request.ServerVariables( "REMOTE_ADDR ")   来取得客户端的IP地址, 但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的I ...

  7. origin添加两个Y轴

    1. 选中X和两个Y 2. 点击Double Y 3. 关掉gap to Symbol,否则Line+Symbol这种显示方式可能显示不出线条 ​

  8. spring与缓存注解,以及encache缓存使用

    随着时间的积累,应用的使用用户不断增加,数据规模也越来越大,往往数据库查询操作会成为影响用户使用体验的瓶颈,此时使用缓存往往是解决这一问题非常好的手段之一.Spring 3开始提供了强大的基于注解的缓 ...

  9. CentOS7 Nginx-1.10.3编译安装

    cat > nginx.sh <<EOF #停止apache,避免抢占端口号 systemctl stop httpd #创建nginx运行账户,非登录用户,不创建家目录 usera ...

  10. Redis学习笔记(五)——数据结构之哈希(Hash)

    一.介绍 Redis hash是一个string类型的field和value的映射表,hash特别设于用于存储对象. Redis中每个hash可以存储232 - 1 键值对(40多亿). 基本命令: ...