android 生成 正式 签名 的 .apk文件 解决 静默安装 签名不一致问题

本文介绍了如何解决Android应用在版本更新时因签名不一致导致的静默安装失败问题。首先,通过Android Studio生成签名文件,并在app的build.gradle文件中配置debug和release签名保持一致。接着,详细说明使用Gradle生成正式签名APK文件的步骤,包括修改build.gradle文件,执行assemble任务来生成apk。最后,确认在指定目录下生成了签名一致的debug和release APK文件。

前言:本文的初衷是源于在版本自动更新时犯错而不自知:运行的是debug版,检测到版本有更新,然后自动下载存放在服务器的release版apk到本地。这样往往会由于两个版本签名不一致,导致静默安装失败。解决方案:在app下build.gradle文件中,统一debug、release签名,杜绝不一致
不知为何,一直无法直接用Gradle生成正式签名的apk文件。一种稍显迂回的办法就是先生成.jks签名文件,然后再生成apk文件。若有更简易方法,请在评论区告知,谢谢

一、使用Android Studio生成签名文件

在app下build.gradle文件中,buildTypes闭包默认是这样的:

 buildTypes {
        //打包配置
        release {
            //是否混淆
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

    }

打开Android Studio,点击工具栏上面的“Builder”->Generate Signed Bundle/APK(盗图呵呵呵)
在这里插入图片描述
弹出一个对话框
在这里插入图片描述
App Bundle文件用于上架Google Play商店的,缺点是不能直接安装到手机上,也不能用于除上架Google Play之外的其它应用商店。这里选择创建 APK 文件

在这里插入图片描述
点击Create new…,按要求填写即可。这里将.jks文件放在c:\User\aa(这里是我自己的用户目录,改成你的)
在这里插入图片描述
这个错误忽略,直接点ok
在这里插入图片描述

我们的需求仅仅是生成签名文件,选debug就可。V1、V2都勾选上,表示会使用同时兼容新老本系统的签名方式
在这里插入图片描述
点击Finish后,等待:
在这里插入图片描述
在c:\User\aa目录下生成了签名文件:
在这里插入图片描述

二、使用Gradle生成正式签名的APK文件

修改app下build.gradle文件。增加了签名配置signingConfigs ,buildTypes也增加了debug闭包。这种配置可使debug、release签名始终保持一致。注意保存签名的文件路径和文件名与上一步一致

//签名配置
    signingConfigs {
        config {
            keyAlias 'chat'
            keyPassword '123456'
            storeFile file('C:/Users/aa/mychat.jks')
            storePassword '123456'
        }
    }
    buildTypes {
        //打包配置
        release {
            //清理无用资源
            //shrinkResources true
            //是否启动ZipAlign压缩
            zipAlignEnabled true
            //是否混淆
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            //签名
            signingConfig signingConfigs.config
        }
        debug {
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            //签名
            signingConfig signingConfigs.config
        }

    }

必要时可clean下工程
双击右侧工具栏的Gradle->项目名->app->Tasks->build->assemble, 生成APK文件。它会同时生成debug和release 两个版本的apk。

在这里插入图片描述
assemble执行成功:
在这里插入图片描述
APK文件会自动生成在app/build/outputs/apk目录下,一个是debug版,另一个是relase版:
在这里插入图片描述
分别生成了两个版本的apk文件:
在这里插入图片描述在这里插入图片描述
OK,收工!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值