android-实例-蒲公英-更新与安装-5-签名与生成APK

1.在获取当前签名状态

java 复制代码
// 判断当前是否为 Debug 版本
boolean isDebug = (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
Log.d("BuildType", isDebug ? "Debug 版本" : "Release 版本");

2. 设置签名

2. 1 创建签名文件(旧版)

key store path : C:\apk_key\appkey2608.jks

password : 123456 comfirm: 123456

key: alias: key0

password : 123456 comfirm: 123456

错误部分

Key was created with errors:

Warning:

JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore

C:\apk_key\appkey2608.jks -destkeystore

C:\apk_key\appkey2608.jks -deststoretype pkcs12"

迁移到行业标准格式 PKCS12。

这不是错误,而是警告!不必理会

您看到的 Key was created with errors 以及后续的 Warning并不是致命错误 ,而是 Java 给出的迁移建议 。您的密钥库文件 appkey.jks 实际上已经成功创建了。

继续

3.在工程模块中配置

在build.grable(模块名)中配置

java 复制代码
android {
    compileSdkVersion 30
    buildToolsVersion '30.0.0'


    defaultConfig {
      ..................
    }

    //------------------------------------260807(参考蒲公英文档篇-签名与打包)
    signingConfigs {
        release {
            storeFile file("C:/apk_key/appkey2608.jks")
            //storePassword System.getenv("123456")
            storePassword "123456"
            keyAlias "key0"
            keyPassword System.getenv("123456")
        }
    }
     //--------------------------------------------------------------
    buildTypes {
        release {
            // 让 Release 构建使用这个签名配置
            signingConfig signingConfigs.release
            // 建议开启代码混淆和资源压缩
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

这个配置的意义非常重大------它决定了你打出的APK 能不能安装、能不能上架、能不能更新

一句话总结

这个配置就是给APP办了一张"身份证",证明这个APP是你开发的。

没有它,Android系统根本不允许安装;有了它,你的APP才能正常发布和更新

安装时的身份验证(最重要)

复制代码
用户下载APK → 系统检查签名 → 发现是你签的 → 允许安装
                                  ↓
                          如果不是你签的 → 拒绝安装

这就是你之前遇到"包名冲突"的根源

  • 手机里已经装了一个APP,签名是张三的

  • 你现在想装一个同名APP,签名是李四的

  • 系统认为:这是两个不同的人,不能覆盖 → 报错

注意:

1.要实现app内在线更新,必须通过菜单栏点击 Build → Generate Signed Bundle / APK...
生成的apk,使用绿三角run联机只能装在实机属于debug模式,与发布的apk强明不一致。

2.签名生成appkey.jks文件最好使全Android工程通用,不要放在单独模块之中。生成其他模块
就apk就不用设置了。

相关推荐
小羊没烦恼!20 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里20 小时前
java中的继承和多态的区别
java
小羊没烦恼!20 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕21 小时前
JSONObject与JSONArray封装数据格式区别
java·json
千里马学框架21 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台21 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
胡写代码21 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖21 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
AFinalStone21 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
此时不提桶,更待何时21 小时前
01-06-A-JVM排查实战详解
java·jvm