Android Studio 默认 debug.keystore , apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码
参考资料:
https://blog.csdn.net/nimasike/article/details/51457229
https://www.cnblogs.com/zhangqie/p/6439052.html
我们使用Android Studio 运行或测试我们的app 它使用一个默认的debug.keystore进行签名。
这个默认签名(keystore)是不需要密码的,它的默认位置在 $HOME/.android/debug.keystore,如果不存在Android studio会自动创建它。
例如我的debug.keystore就在 C:\Users\devil\.android\debug.keystore 。再我们正式发布项目的时候是不能使用debug.keystore的。
1. 查看当前 debug 模式下的 数字签名
keytool -list -v -keystore C:\Users\devil\.android\debug.keystore

keytool -list -v -keystore C:\Users\devil\.android\debug.keystore
首先在 jre目录的子目录bin下面找到 可执行文件 keytool , 在cmd模式下执行, 其中 C:\Users\devil\.android\debug.keystore 是本机默认的 keystore 文件。
由于 Android 应用在debug模式和release 模式 下面的数字签名往往不同,因此我们需要 对 release模式下的数字签名进行重新建立,并且可以保持 debug模式下的数字签名的设置, 当然我们也可以将 debug模式下数字签名与 release 模式下的数字签名改为相同的,一般情况下这并不是必须的。
下面记录下 release模式下的数字签名的建立以及 app应用的打包过程:
release 模式下的数字签名的建立:





下面基本就是选择默认选项,然后到工程目录下面就可以找到 已经编译好的带有数字签名的APK文件。

2. 查看 release 模式下的 数字签名
keytool -list -v -keystore C:\Users\devil\.android\devil_release.jks

3. 以上步骤是手动为release模式下的app生成设置数字签名,下面介绍如何将数字签名的设置方式保存为本机的默认设置,从而保证每次做带有数字签名的app生成的同时还能不用重新配置:

为默认的debug模式的数字签名进行配置,如果不进行配置则默认使用debug.keystore文件。这里我们也同样修改为自己生成的数字签名,然后使debug模式和release模式下面的数字签名都采用相同配置。

为release模式下的数字签名进行配置。

查看APP的配置文件应该是这样的:

app下的build.gradle 文件内容。
apply plugin: 'com.android.application'
android {
signingConfigs {
android_app {
keyAlias 'androidapp'
storeFile file('C:/Users/devil/.android/devil_release.jks')
keyPassword ''
}
}
compileSdkVersion
buildToolsVersion "24.0.2"
defaultConfig {
applicationId "activitytest.com.example.myapplication"
minSdkVersion
targetSdkVersion
versionCode
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.android_app
}
debug {
signingConfig signingConfigs.android_app
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
}
=================================================================================
带有数字签名配置的APP源码在传播的时候是存在一定的问题的,因为你把工程文件传给其他人的时候数字签名文件往往不会进行传输的,这时候如果其他人在拿到源码文件后重新进行配置数字签名文件的话是不会得到原始配置的数字签名的,如果这个APP工程调用地图API的情况下由于数字签名的不同有可能引起他人重新编译好的app难以正常运行,因此如果你的工程需要用到数字签名的话你应该将你的数字签名一并打包发给他人,以便他人能够在另一个开放环境下重新配置数字签名。
需要注意的是即使将数字签名(包括debug模式和release模式)下配置进行默认配置,这种情况下每次生成APP文件时不需要重新配置,但是以上步骤的操作只对当前工程有用,也就是说但你重新建立工程后还需要重新进行本文中的所有操作,所以可以将生成的数字签名文件 .jks文件保存在当前工程目录下,这样方便打包工程,同时可以将 .jks文件备份一个以便于每次建立新工程的时候都可以将它保存到新建的工程下面,这样至少数字签名的生成步骤是可以省掉的。
Android Studio 默认 debug.keystore , apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码的更多相关文章
- Android Studio apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码
keystore.jks文件生成,打包APK 选择Build > Generate Signed APK 出现如下弹框: 然后点击Create new...(创建的意思)出现另一个弹框,在做如下 ...
- Android Eclipse keystore.jks文件生成,根据keystore密钥获取SHA1安全码 ,apk打包
keystore.jks文件生成,打包APK 选中项目右键-> Android Tools->Export Signed Application Package ,如图: 之后 点击Nex ...
- Mac系统下查看Android studio默认debug签名与正式签名的SHA1值
https://blog.csdn.net/weixin_32364917/article/details/80095063 获取默认debug签名SHA1值方法,也可以直接打开系统的终端 输入: k ...
- Android Studio 自定义debug签名文件keystore
Android Studio 自定义debug签名文件keystore
- 将Android Studio默认布局ConstraintLayout切换成LinearLayout
将Android Studio默认布局ConstraintLayout切换成LinearLayout 大部分人初次使用google android 扁平化布局ConstraintLayout都 ...
- 修改Android Studio默认的API Level(SDK版本)
原文:修改Android Studio默认的API Level(SDK版本) Android Studio(2.1.2)新建工程的时候只会让你选择最低支持的SDK版本,默认的目标编译SDK版本会以系统 ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
- 浅谈Android Studio中项目结构中project模式的各个文件和文件夹
致敬郭霖,这些知识是从第一行代码第二版中直接码下来的,谢谢他,注意每个条目前是否有. 1..gradle和.idea 这两个目录下放置的都是Android Studio自动生成的一些文件,我们无需关心 ...
- Android Studio 默认keystore 以及自定义keystore
我们使用Android Studio 运行或测试我们的app 它使用一个默认的debug.keystore进行签名. 这个默认签名(keystore)是不需要密码的,它的默认位置在 $HOME/.a ...
随机推荐
- MysQL使用一高级应用(下)
连接查询 连接查询分类如下: 表A inner join 表B:表A与表B匹配的行会出现在结果中 表A left join 表B:表A与表B匹配的行会出现在结果中,外加表A中独有的数据,未对应的数据使 ...
- Live Score FAQ
Q: Why doesn't the selected game go to top? A: The game which include your favorite team will be alw ...
- [BZOJ1912]巡逻
Description Input 第一行包含两个整数 n, K(1 ≤ K ≤ 2).接下来 n – 1行,每行两个整数 a, b, 表示村庄a与b之间有一条道路(1 ≤ a, b ≤ n). Ou ...
- Servlet3.0与Spring
servlet filter listener web.xml DispatcherServlet web.xml 后期 servlet3.0我们去除web.xml 通过注解方式 同时需要s ...
- Python基础笔记系列十三:socket网络编程
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...
- 字体渲染技术(字体抗锯齿技术) -webkit-font-smoothing: antialiased;
1.-webkit-font-smoothing控制的字体渲染只对MacOS的webkit有效.所以,你在MacOS测试环境下面设置-webkit-font-smoothing时,只要你不把它设置为n ...
- python学习使用
静态变量:函数执行完不释放的变量 python的类中 __init__相当于构造函数.
- 重新学习MySQL数据库1:无废话MySQL入门
重新学习Mysql数据库1:无废话MySQL入门 开始使用 我下面所有的SQL语句是基于MySQL 5.6+运行. MySQL 为关系型数据库(Relational Database Manageme ...
- 转 Java对日期Date类进行加减运算一二三
请移步,https://blog.csdn.net/hacker_lees/article/details/74351838 ,感谢博主分享
- IOS-github优秀开源项目大全
github优秀开源项目大全-iOS 前言 本文旨在搜集github上优秀的开源项目 本文搜集的项目都是用于iOS开发 本文会持续更新… 完整客户端 ioctocat github的iOS客户端,目前 ...