Android Studio的两种模式及签名配置
来源:互联网 发布:淘宝达人大v认证入口 编辑:程序博客网 时间:2024/04/30 00:18
我们使用Android Studio 运行我们的app,无非两种模式:debug和release模式。
debug模式
debug模式使用一个默认的debug.keystore进行签名。
这个默认签名(keystore)是不需要密码的,它的默认位置在C:\Users\<用户名>\.Android\debug.keystore,如果不存在Android studio会自动创建它。
例如我的debug.keystore就在C:\Users\Administrator\.android\debug.keystore。
release模式
在我们正式发布项目的时候是不能使用debug.keystore的。开发过程中我们也可以使用发布模式运行。可以通过如下设置:
BuildVariants-Build Variant-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里面写下面这段。
1 signingConfigs { 2 release { 3 keyAlias 'androiddebugkey' 4 keyPassword 'android' 5 storeFile file('C:/Users/ssc/.android/debug.keystore') 6 storePassword 'android' 7 } 8 } 9 10 ·········11 12 buildTypes {13 release {
//是否混淆14 minifyEnabled false
//是否移除无用资源15 zipAlignEnabled true
//混淆的配置文件
16 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'17 signingConfig signingConfigs.release18 }19 }
上述的配置虽然配置简单,但是存在不安全性,假如你的项目是开源的,你把签名文件的配置密码之类的信息用明文写在build.gradle里面,那是不是很不安全呢?
可以将签名文件的配置密码之类的信息直接写在local.properties下,因为在Git版本控制的项目中,我们可以看到我们项目project模式根目录下有一个.gitignore的文件,里面的配置大概如下所示
我们可以看到/local.properties,意思就是说local.properties默认是不添加到版本控制里面的,因为local.properties存储的是我们环境资源的一些相关信息,如sdk的路径。故我们可以在local.properties下配置签名信息而不用担心密钥外泄。对于开源项目来说,是非常好的。
在local.properties下直接添加相关信息
在build.gradle里,为了不用明文显示,我们首先要获得key的相关配置,所以我们可以在app的build.gradle里
android {}之上新增代码
app/build.gradle下的signingConfigs可以改为:
signingConfigs {
release {
keyAlias keystoreAlias
keyPassword keystoreAliasPSW
storeFile keyfile
storePassword keystorePSW
}
}
设置后Signing中keystore值无需关心
相应的,buildTypes也可以配置成这样
1 buildTypes { 2 release { 3 minifyEnabled false 4 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 5 // signingConfig signingConfigs.release 6 //签名文件存在,则签名 7 if (keyfile.exists()) { 8 println("WITH -> buildTypes -> release: using jks key") 9 signingConfig signingConfigs.release10 } else {11 println("WITH -> buildTypes -> release: using default key")12 }13 applicationVariants.all { variant ->14 variant.outputs.each { output ->15 def outputFile = output.outputFile16 if (outputFile != null && outputFile.name.endsWith('.apk')) {17 // 输出apk名称为ruijie_v1.0_wandoujia.apk18 def fileName = "ruijie_v${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"19 output.outputFile = new File(outputFile.parent, fileName)20 }21 }22 }23 }24 }
到此,前面配置完成。
附:查询keystore的相关信息,如查看sha1的值;可以在运行窗口,定位到keystore所在的路径,执行cd C:\Users\ssc\.android
执行这条语句后就能显示Key的所有信息(以android默认keystore为例)
keytool -list -v -keystore xxx.jks
- Android Studio的两种模式及签名配置
- Android Studio的两种模式及签名配置
- Android Studio签名打包的两种方式
- Android Studio签名打包的两种方式
- Android Studio签名打包的两种方式
- Android Studio签名打包的两种方式
- Android Studio签名打包的两种方式
- Android Studio签名打包的两种方式
- Android Studio签名打包的两种方式
- Android Studio配置签名
- android studio签名配置
- Android studio签名配置
- android studio 签名配置
- Android Studio配置Debug包的签名
- Android Studio 配置release的签名
- android studio中获取地图密钥查找签名的两种方法
- Android Studio 生成正式签名apk(app-release.apk)的两种方式
- Android studio之签名配置
- 杭电ACM2002:球体积
- linux MMC驱动子系统
- 从数据类型 varchar 转换为 bigint 时出错。
- notepad ++ 在win7上关联文件后,图标空白
- 在spring中获取request对象
- Android Studio的两种模式及签名配置
- 【Leetcode】71 Simplify path 简化路径
- Unity 性能优化指南
- L2-007. 家庭房产 (并查集的简易应用)
- 设计模式(二)java内置的观察者模式
- 重写和重载
- CKEditor上传图片去掉超链接和高级选项卡以及上传和图像互换位置
- bzoj 4766: 文艺计算姬 矩阵树定理+快速幂
- RaspberryPi高级教程——最简无线方式远程控制raspberrypi3