uniapp打包apk安装,应用版本号冲突,根据已有apk文件获取应用版本号或包名

安卓安装apk文件,应用版本号不能小于上一个版本的,否则无法覆盖安装。
uniapp打包的时候,版本号一般都是第一次打包的时候填,之后的打包都留空(让它自增)。这样的话,想要从manifest.json中看出应用版本号是不可能的。
如果你接手了一个uniapp的源码,如果没有在Dcloud后台添加你为协作者,你就需要重新获取应用的Dcloud appid,当你修改完代码打包发布以后,却发现安装不了,提示应用版本号过低?这种情况,如果可以找到一个以前版本的apk安装包,那么就可以通过apktool这个工具读取出来以前的版本号。
方法如下:

  1. 安装jdk,1.8+
  2. 下载apktool.jar详细,在C盘新建文件夹apktool,然后把apktool.jar复制到里面。
  3. 创建apktool.bat文件,里面写入@java -jar "%~dp0apktool.jar" %*
  4. 把[C:\apktool]加入电脑的环境变量(可选,方便在其他地方命令)。
  5. 把你的apk复制到apktool目录,重命名为a.apk(其他也行,如b.apk)。
  6. 打开powershellCMD,运行命令cd C:\apktool\进入[C:\apktool],
  7. 运行命令:.\apktool d a.apk,会报错不用管,完成以后会在目录里生成一个a的目录.
  8. 进入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 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!