使用Android Studio进行签名及使用gradle配置签名

一、Debug模式下的签名

      运行或从IDE调试项目时,Android的Studio会自动由Android SDK工具生成的调试证书签名的APK。您运行或调试Android Studio中的项目第一次,IDE会自动在调试密钥库和证书 $HOME/.android/debug.keystore,并设置密钥库和密钥的密码。

        因为Debug模式下的证书由构建工具创建,这样是不安全的,大部分应用程序商店(包括谷歌Play商店)不会接受的APK有出版调试证书签名。

        所以你不用每次调试时都输入的Android Studio自动存储在签约配置调试签约信息。签名的配置是由所有必要的信息,以签署APK,包括密钥存储位置,存储密码,密钥名称,密钥密码的对象。您不能直接编辑调试签约配置,但可以配置你如何签上你的发布版本。

二、利用Android Studio进行签名

1. 在菜单栏中,Build > Generate Signed APK
这里写图片描述
2. 选择您想从下拉释放下来,然后单击模块 下一步。
3. 如果你已经有一个密钥库,请转到步骤5.如果你想创建一个新的密钥库,单击 新建。
4. 在新的密钥库窗口,为您提供密钥库和密钥以下信息,如图1所示。
这里写图片描述
图1。创建Android Studio中一个新的密钥库。

Keystore

  • Key store path::选择您的密钥存储应该创建的位置。
  • Password:创建并确认您的密钥库安全的密码。

Key

  • Alias:你的Enter键的标识名称。
  • Password: 创建并确认你的密钥的安全密码。这应该是从你选择你的密钥库的密码不同
  • Validity (years):设置的时间长度在几年,你的key将是有效的。你的key应该是有效期至少为25年来,这样你就可以通过你的应用程序的寿命相同的密钥签名的应用程序更新。
  • Certificate:输入有关自己的一些信息,为您的证书。这个信息是不是在你的应用程序中显示,但是属于apk的一部分。
    填完上面信息,然后单击确定。

在生成签名APK窗口中,选择一个密钥库,私钥,并输入密码两种。(如果在上一步中创建您的密钥库,这些字段已经为您填充。)然后单击 下一步。

这里写图片描述
图2。选择Android Studio中的私钥。

在下一个窗口中,选择签署的apk的输出目录,和签名的环境,然后单击 Finish(完成)。

这里写图片描述
图3。生成所选Flavors的APK。

该过程完成后,你会发现在你上面选择的目标文件夹已经有签名的APK。您现在可以通过一个应用市场,如谷歌Play商店,或使用你选择的机制分发签署的APK。

三、配置build.gradle文件自动签名你的apk

在Android Studio中,你可以通过build.gradle 配置来构建你的项目,在构建的过程中会自动生成你的apk。步骤如下:

  1. 在当前你的项目,右键点击你的程序,然后打开Projec Structure,
  2. 再打开的窗口中,在模块的左侧面板中选择你想签署的Module。
  3. 选择你的密码存储文件,然后输入相关的信息;如图:
    这里写图片描述
    图4。用于创建新签名构造的窗口。
  4. 点击Ok。
  5. 然后在build types配置中 选择刚刚签名的配置。如图:
    这里写图片描述

最后点击ok。

然后AndroidStudio 自动构建编译,成功后可以在build/outputs/apk/为您构建模块项目目录内的文件夹中找到我们输出的apk。

四、团队使用问题

1.创建一个文件名 ​​为keystore.properties在项目的根目录。

storePassword = myStorePassword 
keyPassword = mykeyPassword 
keyAlias ​​= 别名
​​storeFile = 签名文件路径

2.在你的模块的build.gradle文件中,添加的代码加载你keystore.properties的文件。

def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {
    ...
}

3.你可以使用语法,来引用存储的签名信息。

android {
    signingConfigs {
        config {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile file(keystoreProperties['storeFile'])
            storePassword keystoreProperties['storePassword']
        }
    }
    ...
  }

猜你喜欢

转载自blog.csdn.net/gengkui9897/article/details/81268067