android 使用signingConfigs进行打包




今天,简单讲讲如何使用android studio指定证书打包。


我们使用Android Studio 运行我们的app,无非两种模式:debug和release模式。

debug模式

debug模式使用一个默认的debug.keystore进行签名。

这个默认签名(keystore)是不需要密码的,它的默认位置在C:\Users\<用户名>\.Android\debug.keystore,如果不存在Android studio会自动创建它。


release模式

在我们正式发布项目的时候是不能使用debug.keystore的。开发过程中我们也可以使用发布模式运行。可以通过如下设置:

BuildVariants-Build Variant-debug/release



如果项目需要细分开发dev和生产pro版本,每个版本中都包含debug和release模式,可以这么设置:


如果项目需要细分开发dev和生产pro版本,每个版本中都包含debug和release模式,可以这么设置:

就细分成四种模式:

release模式需要配置签名才能运行,这时就需要一个keystore

如果没有就需要创建,已经创建过keystore请跳过此步骤

1.创建keystore,并生成我们的apk(打包)

 第一步: Build --->> Generate Signed APK

第二步:Create New···(已经创建过keystore选Choose existing···)

第三步:填写相关信息

设置keystore路径、密码,设置key:别名、密码、有效期,证书等

Key store path:存放路径

Key

  Alias:别名

  Validity(years):有效期(一般默认25年)

  Certificate:证书

    First and Last Name:姓名

    Organization Unit:组织单位

    Organization:组织

    City or Locality:城市或地区

    State or Province:州或省

    Country Code(XX):国家代码(XX),中国:86

 

第四步:输入key、keystore密码

第五步:选择发布app的路径,默认即可 选择release方式发布

OK,发布成功,可以到 刚才设置的目标文件夹下面找到发布的apk



那对一些人来说,这样也太麻烦了,每次都得输入相关信息,还得进行选择,那么有更简单快捷的方法吗?答案是有的。

我们可以在项目的app目录下的build.gradle中进行签名的配置。 

2.release模式配置keystore

Project structure-signing,输入已创建的keystore信息

使得签名生效需配置Build Types

点击OK即可,然后查看对应build.gradle的配置文件应该是这样的。当然了,你也可以通过直接在build.gradle里面写下面这段

signingConfigs {
        release {
            keyAlias 'androiddebugkey'
            keyPassword 'android'
            storeFile file('C:/Users/ssc/.android/debug.keystore')
            storePassword 'android'
        }
    }

    ·········

buildTypes {
        release {
              //是否混淆
            minifyEnabled false
              //是否移除无用资源
            zipAlignEnabled true
              //混淆的配置文件
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
}


这里简单讲讲,通过android studio 在build.gradle里生成了部分代码。其实只是多了signingConfigs,这个指定了签名文件的路径,密码,keyAlias的名称,密码。然后在buildTypes 的release 下生成了signingConfig signingConfigs.release,表明生成release 版本时使用我们指定的签名文件。


Debug也可以通用指定签名文件,

signingConfigs {
  release {//发布版本的签名配置
      storeFile file(props['KEYSTORE_FILE'])
      keyAlias props['KEY_ALIAS']
      storePassword props['KEYSTORE_PWD']
      keyPassword props['KEY_PWD']
  }
  debug {//调试版本的签名配置
      storeFile file(props['DEBUG_KEYSTORE'])
      keyAlias props['DEBUG_ALIAS']
      storePassword props['DEBUG_KEYSTORE_PWD']
      keyPassword props['DEBUG_KEY_PWD']
  }
}


这里需要注意一点,build.gradle文件分为4个部分,

defaultConfig 默认配置

 signingConfigs 签名信息配置

buildTypes productFlavors 打包apk重命名

dependencies 依赖配置


signingConfigs 需要写在defaultConfig 和buildTypes 前面,不然会编译报错。


android 打包signingConfigs的使用就讲完了。


就这么简单。



你可能感兴趣的:(android)