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就不用设置了。

相关推荐
Joy T2 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_587383005 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·6 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
专注仿真6 小时前
引擎扩展性与集成设计深度剖析:从 14 个扩展点到 DIS→HLA 演进之路
开发语言·算法·仿真引擎·推演引擎
Best-Wishes6 小时前
科来网络分析系统(技术交流版)使用说明书
开发语言·junit·php
代码不停7 小时前
自动化测试(java)
java·开发语言·selenium·自动化
鬼手点金8 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
爱上网的小舟8 小时前
星际战士2启动错误怎么办?5种游戏报错解决方法
开发语言·php
paopaokaka_luck9 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
阿里嘎多学长9 小时前
2026-10-12 GitHub 热点项目精选
开发语言·程序员·github·代码托管