原生安卓apk 用 apicloud打包apk之后无法更新

前端 • 前端框架 • 108次浏览 • 2018-05-21 10:08


背景

公司原有安卓apk一套 。由于公司业务变更用 apicloud重新做了一套 但是在由原生apk在升级的时候一直失败 vivo手机提示“安装错误” 小米手机提示“权限版本无法降级 安装失败-26”

大神回复 https://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=65052

原帖 https://community.apicloud.com/bbs/thread-89229-1-1.html

发现是 targetsdkversion的问题 我们的安卓本来是 25 但是 apicloud 打包是 20 而且无法修改 好尴尬

解决

apicloud不支持 看到 https://www.jianshu.com/p/792a08d5452c 豁然开朗

步骤

1. 准备工作

下载 apktool

http://ibotpeaches.github.io/Apktool/install/

下载前两个 apktoolapktool.jar

将两个文件 放到一个目录内 命名 apktool

2. 解压apk

test.apk 放到 文件夹 apktool

cd apktool
apktool d test.apk

执行成功后 目录下生成 test 包 找到 apktool.yml 打开文件

找到

sdkInfo:
  minSdkVersion: '9'
  targetSdkVersion: '20'

修改 targetSdkVersion25

3. 重新打包

生成文件:

apktool b test -o new_test.apk

签名文件:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore 签名文件名 -storepass 签名密码 待签名的APK文件名 签名的别名

执行成功之后 就可以给别人下载安装了

4 对齐

上文中大神 又重新进行了一次对齐 装有 Android sdk的小伙伴 可以进行一下尝试~

我的 zipalign/Users/maoxian/Documents/workspace/webApiCloud/webStorm-APICloud/tools

将apk 移动至 /Users/maoxian/Documents/workspace/webApiCloud/webStorm-APICloud/tools

执行命令

cd /Users/maoxian/Documents/workspace/webApiCloud/webStorm-APICloud/tools
zipalign 4 new_test.apk new_test_aligned.apk

后记

完事之后 更改版本 进行更新 成功

ps1 打包后 调用相册 提示 请先插入SD卡 原因不明 重新打包后 一部分手机失效 大部分手机可以 解决后在补充