Android 项目必备(六)--> 生成正式签名的 APK 文件

在这里插入图片描述

Android不允许没有签名的apk安装到手机上,应用的签名类似于应用的身份证

签名更大的作用是为了保护版权,如果应用的包名相同而签名不一致,则无法覆盖安装,必须先卸载再安装

本文介绍下如何生成一个带有正式签名的 APK 文件。

使用 Android Studio 生成

1. 点击 Android Studio 导航栏上的 Build → Generate Signed Bundle → 选择 APK。
在这里插入图片描述

2. 点击 Next ,会要求我们填入 keystore 文件的路径和密码。

3. 点击 Create new 按钮,填写 keystore 文件所必要的信息,然后点击 OK。

4. 刚才填写的信息会自动填充到创建签名 APK 的对话框。

5. 点击 Next ,选择 APK 文件的输出地址。

6. 点击 Finish。稍等一会,APK 文件就生成好了。右下角有如下弹框。

7. 点击提示上的 locate ,查看生成的 APK 文件

在 Gradle 中配置签名

android {

    signingConfigs {
        release {
            keyAlias '密钥别称'
            keyPassword '密钥密码'
            storeFile file('E:/MySign.jks')
            storePassword '密钥库密码'
        }

        debug {
            keyAlias '密钥别称'
            keyPassword '密钥密码'
            storeFile file('E:/MySign.jks')
            storePassword '密钥库密码'
        }
    }

    buildTypes {
        release {
            // 正式环境签名
            signingConfig signingConfigs.release
        }

        debug {
            // 开发环境签名
            signingConfig signingConfigs.debug
        }
    }
}

1. 在 app/build.gradle 文件添加:

2. 点击右侧工具栏 Gradle → 项目名 → app → Tasks → build。双击 assemble

3. 控制台执行成功。

BUILD SUCCESSFUL in 40s
63 actionable tasks: 4 executed, 59 up-to-date
17:52:57: Task execution finished 'assemble'.

4. APK 文件会自动生成在 app/build/outputs/apk 。

5. 注意
keystore 文件的所有信息都是以明文的形式直接配置在 build.gradle 中,这种做法会不安全。
解决方案:

  • 在根目录 gradle.properties 文件,添加如下内容:
KEY_PATH=/toolkeys/weather.jks
KEY_PASS=hkt123456
ALIAS_NAME=weather
ALIAS_PASS=hkt123456
  • 编辑 app/build.gradle 文件:
signingConfigs {
        config {
            storeFile file(KEY_PATH)
            storePassword KEY_PASS
            keyAlias ALIAS_NAME
            keyPassword ALIAS_PASS
        }
    }

获取签名的 MD5、SHA1、SHA256 值

打开 cmd 命令行 (windows + R) ,输入以下指令:

keytool -list -v -keystore 签名文件地址

输入密码,在命令行窗口是看不到输入的密码,所以只管输入之后回车即可

在这里插入图片描述

Android Debug 的签名文件在以下的路径,密钥库密码为:android

C:\Users\电脑当前用户名\.android\debug.keystore

验证apk签名

在 cmd 命令行中输入:

jarsigner -verify -verbose -certs apk文件地址

正确的签名,证书到期日期为约定有效期后的日期

  X.509, CN=HJQ, L=guangdong, ST=shantou, C=CN
  [证书的有效期为17-3-30 下午4:4367-3-18 下午4:43]
  [CertPath 未验证: Path does not chain with any of the trust anchors]

  s = 已验证签名
  m = 在清单中列出条目
  k = 在密钥库中至少找到了一个证书
  i = 在身份作用域内至少找到了一个证书

jar 已验证。

警告:
此 jar 包含证书链未验证的条目。
此 jar 包含的签名没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2067-03-1
8) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

debug签名信息,有效期大约为30年

  X.509, C=US, O=Android, CN=Android Debug
  [证书的有效期为16-11-22 下午6:1546-11-15 下午6:15]
  [CertPath 未验证: Path does not chain with any of the trust anchors]

  s = 已验证签名
  m = 在清单中列出条目
  k = 在密钥库中至少找到了一个证书
  i = 在身份作用域内至少找到了一个证书

jar 已验证。

警告:
此 jar 包含证书链未验证的条目。
此 jar 包含的签名没有时间戳。如果没有时间戳, 则在签名者证书的到期日期 (2046-11-1
5) 或以后的任何撤销日期之后, 用户可能无法验证此 jar。

签名不完整,未签名或签名错误

  s = 已验证签名
  m = 在清单中列出条目
  k = 在密钥库中至少找到了一个证书
  i = 在身份作用域内至少找到了一个证书

jar 未签名。(缺少签名或无法解析签名)

手动签名

可以用 360 提供的签名工具进行签名,可以到 360 官网进行下载
在这里插入图片描述

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin-Dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值