Android Studio生成签名

Android Studio APK签名生成:

Build->Generate Signed APK

Android Studio生成签名_第1张图片

如下图,因为我已经签名成功了,所以key store path 已经选择了一个签名文件路径

Android Studio生成签名_第2张图片

第一次给工程打包签名可以选择Create new store

Android Studio生成签名_第3张图片

创建成功后直接OK,

创建签名文件时各选项的介绍:下载文档

Android Studio生成签名_第4张图片

Android Studio生成签名_第5张图片

Android Studio生成签名_第6张图片

Android Studio生成签名_第7张图片

签名包V1和V2详细介绍:

使用Android Studio打包签名时,打包选项会有V1 和 V2 两个选项

老版本的AS,只有V1选择。但是新版本的AS,默认勾选的是V2版本。如果只勾选V2版本,打出来的签名包,很多机型会直接提示安装失败。解决办法下面会说。

概述:

在Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature来自JDK。

V1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。

V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。好处显而易见,更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证),从而加快应用安装速度。

解决方案一:

V1和V2的签名使用

1)只勾选V1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式

2)只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证

3)同时勾选V1和V2则所有机型都没问题。

解决办法二:

在app的build.gradle的android标签下加入如下

android {

        signingConfigs {
            config {
                keyAlias 'a'
                keyPassword '123456'
                storeFile file('a.jks')
                storePassword '123456'
            }

            debug{
                v1SigningEnabled true
                v2SigningEnabled true
            }
            release{
                v1SigningEnabled true
                v2SigningEnabled true
            }
        }
   }

V2签名包是从Android7.0系统出现的新的签名机制,这个新机制使得apk的签名方式更加安全。首先我们应该尝试把V1和V2两个选项全部勾选,并尽可能的去使用他们,但是如果全部勾选完毕出现了问题,那么我们可以忽略这种新的签名机制,只勾选第一个选项(V1),依旧使用我们之前老的签名机制,也就是说,V1版本更加快速方便。

为什么这里会提到V1、V2的区别。因为这里的美团多渠道打包只能适用于V1版本的签名包!!!但是apk上架到应用宝时(在打包同时勾选V1、V2且没有使用多渠道打包)还是会提示:

Android Studio生成签名_第8张图片

所以,个人还是推荐使用V1打包方式。因为稳定,所以放心。

在提一嘴,前不久美图技术点评也实现了V2版本包的功能,想了解的请移步:新一代美团快速打包。集成起来会相对复杂一些,在一些讲解效率和快速开发的团队,正常使用V1签名包和上面的美团打包方式,依旧可以快速高效满足开发需求保证产出以及安全。

两者如何取舍,全在开发者个人主观能动性了。

接下来配置签名:

Android Studio生成签名_第9张图片

Android Studio生成签名_第10张图片

Android Studio生成签名_第11张图片

点击ok

把默认apk 生成 用我们自定义的签名

Android Studio生成签名_第12张图片

ok了。我们的签名已经生成好了,可以上传和安装个平台了

你可能感兴趣的:(Android,Android签名打包,Android开发常见问题)