uniapp打包apk安装,应用版本号冲突,根据已有apk文件获取应用版本号或包名
安卓安装apk文件,应用版本号不能小于上一个版本的,否则无法覆盖安装。
在uniapp
打包的时候,版本号一般都是第一次打包的时候填,之后的打包都留空(让它自增)。这样的话,想要从manifest.json
中看出应用版本号是不可能的。
如果你接手了一个uniapp
的源码,如果没有在Dcloud
后台添加你为协作者,你就需要重新获取应用的Dcloud appid
,当你修改完代码打包发布以后,却发现安装不了,提示应用版本号过低?这种情况,如果可以找到一个以前版本的apk
安装包,那么就可以通过apktool
这个工具读取出来以前的版本号。
方法如下:
- 安装
jdk
,1.8+ - 下载
apktool.jar
详细,在C
盘新建文件夹apktool
,然后把apktool.jar
复制到里面。 - 创建
apktool.bat
文件,里面写入@java -jar "%~dp0apktool.jar" %*
- 把[C:\apktool]加入电脑的环境变量(可选,方便在其他地方命令)。
- 把你的
apk
复制到apktool
目录,重命名为a.apk
(其他也行,如b.apk
)。 - 打开
powershell
或CMD
,运行命令cd C:\apktool\
进入[C:\apktool], - 运行命令:
.\apktool d a.apk
,会报错不用管,完成以后会在目录里生成一个a
的目录. - 进入
a
目录,打开里面的AndroidManifest.xml
文件,在第一行中有类似的字符串:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:compileSdkVersion="23" android:compileSdkVersionCodename="6.0-2438415" package="xxx.aaa.com" platformBuildVersionCode="175" platformBuildVersionName="1.12.1">
package
:xxx.aaa.com
是包名,(所以如果不知道以前的包名,也可以用此方法)
platformBuildVersionCode
:175
就是这篇文章要找的【应用版本号】。
platformBuildVersionName
:1.12.1
是【版本号】,这个一般在manifest.json
中就能找到,语义化的版本名称,不影响apk安装,主要用于程序检测版本升级。
找到【应用版本号】为175
,接下来,在manifest.json
填一个更大一些的数,比如176
,云端打包一次。
然后再清空【应用版本号】,以后打包就会自动递增了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: