Android studio 如何创建apk签名

Android studio 如何创建apk签名,第1张

1、打开软件

找到“Build”选项

2、打弊带弯开生成apk签名的窗口

Build---->Generate Signed APK...

3、 选择创建新的密钥

Creata new...

4、 选择密钥存储路径,并为密钥命名

填写信息

5、设置密码,填写或更改信息

密码请牢记,密码请牢记,密码请牢记(三遍了)

证书内容貌似可以空白

6、ok,然后,下一步

如果遇到下图的情况,不用担心,继续点击ok

问题解决办法:行团https://www.jianshu.com/p/67c2972182a0

7、然后,下一步

8、选择签名版本

v1或者v1&v2 然后点击finish 即可,找到刚才保存的路径,即可找到签租闷名文件

建议选择v1&v2

通过签名可以确保数据来源的可靠性和数据的不可篡改性

对 Apk 进行签名,也就是在 Apk 中写入一个指纹,写入指纹后,Apk 中有任何修改,都会导致这个指纹无效,Android 系统在安装 Apk 进行签名校验时就会不通过,进而无法安装该 Apk

如上图:

通常的签名验签过程中,接收方收到消息后,会先向 CA 机构验证证书的合法性,再进行签名校验。但 Apk 的证书通常由开发者自己制作,没有向 CA 机构申请,Android 系统在安装 Apk 时也并没有校验证书本身的合法性,只是从证书中提取公钥和加密算法,因此,如果对第三方 Apk 重新签名,也能安装到没有安装过这个 Apk 的系统中

keystore 文件包含私钥、公钥和数字证书,分为很多种,Android 使用的是 Java 标准 keystore 格式 JKS(Java Key Storage)

Android App Bundle:用于通过 Google Play 发布的应用,需要升级到AS 3.2 以上版本才支持App Bundle 格式;

APK:用于创建可部署到设备上的签名 APK

点击 Finish 就会生成签名文件与签名后的 Apk

当我们需要升级 Apk 版本的时候,需要再次对 Apk 文件进行签名,可以通过配置 build.gradle 让其自动生成签名后的 Apk

如果你的项目是开源的,需要把你的签名信息写在 local.properties 中,然后在 .gitignore 配置文件中加入 local.properties ,这样 local.properties 就不会提交到开源项目中,签名信息也就不会被人获取

local.properties:

app/build.gradle:

有时候我们的 apk 中某些功能尺则需要系统签名,例如静默安装。测试系统签名的 apk,需要 root 权槐谈限,而带 Google APIs 的模拟器不能 root,因铅困碰此要注意不能选择带 Google APIs 的模拟器

下面执行的 *** 作都是在 Linux 中,如果 apk 是 window 中生成的,需要拷贝到 linux *** 作,再将生成的系统签名过得 apk 再拷贝到 window,比较麻烦,可以考虑后面的自动系统签名,还是需要在 linux *** 作一次,不过之后就可以只在 window *** 作了

这两个文件在目录 aosp/build/target/product/security 下,如下图

在目录 aosp/prebuilts/sdk/tools/lib 下,如下图

将前面获取的 platform.pk8 、 platform.x509.pem 和 signapk.jar 文件放到需要签名的 apk 同一个目录,执行以下命令

如果出现上面的错误:Failed to load any of the given libraries: [conscrypt_openjdk_jni-linux-x86_64, conscrypt_openjdk_jni-linux-x86_64-fedora, conscrypt_openjdk_jni]

解决方法:

到目录 aosp/prebuilts/sdk/tools/linux/lib64 下,复制 libconscrypt_openjdk_jni.so 文件到需要签名 apk 的同一个目录,并将命令改为

自动进行系统签名的原理是:先生成一个 system.jks 文件,使用 keytool-importkeypair 对 system.jks 文件进行系统签名,再 build.gradle 和 local.properties 进行配置,直接使用带有系统签名的 system.jks 对 apk 进行签名,这样编译生成的apk文件就自带系统签名了

按照前面的方法,生成一个 system.jks 文件,此时是在 window 系统中 *** 作的

进入 keytool-importkeypair 目录,将 system.jks、platform.pk8、platform.x509.pem 文件拷贝进来,拷贝之后的目录结构为

使用 linux 中修改过的带有系统签名的 system.jks 文件将 window 中最开始生成的 system.jks 覆盖掉,再像前面的自动签名部分一样,修改 build.gradle 和 local.properties 的配置,之后生成的 apk 就是系统签名过的了

测试方法是,在 AndroidManifest.xml 中添加 android:sharedUserId="android.uid.system" 后安装到 非 Google APIs 的模拟器上 , Google APIs 的模拟器不能 root,无法安装

会发现只有使用 system.jks 文件签名后才能安装,否则安装失败,会报以下的错误:

方法/步骤

对apk的签名需要把项目导入到Android studio软件中,进行点击菜单中“Build”选项,d出的下拉菜单中的“generate signed APK”.

进入到generate signed apk中界面框中,因第一次对apk的签名,就需要先创建签名文件钥匙,点击”create new“的按钮。

进行选择钥匙保存的位置,指定到磁盘的位置,然后在文件昵称填入,点击“ok”的选项租裂。

进入到new key store的界面中,根掘冲据界面中提示信息输入内容信息,输入完成之后点击“ok”。

钥匙创建完成之后,进行点击"next下一步" *** 作。

在进入到这个界面中选择apk生成保存的位置,然后在build type中选择release的选项,然后点击“Finish”的选项,这样就生成到apk的弊散闭保存路径中。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12227325.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存