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的使用就讲完了。


就这么简单。


  • 10
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
你可以使用 Gradle 脚本来实现自动打包 Android Studio 项目。下面是一个简单的示例: 1. 在项目根目录下创建一个名为 `build.gradle` 的文件。 2. 使用以下代码填充 `build.gradle` 文件: ```groovy apply plugin: 'com.android.application' android { // 配置你的应用程序 compileSdkVersion 30 buildToolsVersion "30.0.3" defaultConfig { applicationId "com.example.yourapplication" minSdkVersion 21 targetSdkVersion 30 versionCode 1 versionName "1.0" } // 配置你的签名信息 signingConfigs { release { keyAlias 'your_key_alias' keyPassword 'your_key_password' storeFile file('your_keystore_file.jks') storePassword 'your_keystore_password' } } buildTypes { release { // 配置签名信息 signingConfig signingConfigs.release // 打包时启用混淆和压缩 minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } // 配置其他构建选项 // ... } // 配置构建脚本任务 task assembleRelease(type: GradleBuild) { buildFile = 'your_submodule/build.gradle' tasks = ['assembleRelease'] } // 配置其他构建脚本任务 // ... ``` 3. 在你的项目根目录下创建一个名为 `your_script.gradle` 的文件,用于自定义构建脚本任务。 4. 使用以下代码填充 `your_script.gradle` 文件: ```groovy def releaseNotesFile = file("release_notes.txt") android.applicationVariants.all { variant -> def outputFileName = "${variant.name}-${variant.versionName}.apk" // 配置构建输出路径 variant.outputs.all { outputFileName = "${variant.flavorName}-${variant.versionName}.apk" outputFileName = outputFileName.replaceAll(" ", "_") outputFileName = outputFileName.replaceAll("-", "_") outputFileName = outputFileName.toLowerCase() outputFileName = "your_output_directory/" + outputFileName outputFileName = project.file(outputFileName).absolutePath outputFileName = outputFileName.replaceFirst("/$project.name/", "/") outputFileName = outputFileName.replaceFirst("/default", "/") variant.packageApplicationProvider.configure { packageApplication -> packageApplication.outputDirectory = new File(outputFileName).getParentFile() packageApplication.outputFile = new File(outputFileName) } } } // 配置其他构建脚本任务 // ... ``` 5. 在你的项目根目录下的 `build.gradle` 文件中,添加以下代码来应用自定义构建脚本任务: ```groovy apply from: 'your_script.gradle' ``` 6. 保存文件并在终端中执行以下命令来运行自动打包脚本: ```bash ./gradlew assembleRelease ``` 这将使用 Gradle 构建系统自动打包你的 Android Studio 项目。请根据你的实际需求进行适当的修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值