参考资料:

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安全码的更多相关文章

  1. Android Studio apk打包,keystore.jks文件生成,根据keystore密钥获取SHA1安全码

    keystore.jks文件生成,打包APK 选择Build > Generate Signed APK 出现如下弹框: 然后点击Create new...(创建的意思)出现另一个弹框,在做如下 ...

  2. Android Eclipse keystore.jks文件生成,根据keystore密钥获取SHA1安全码 ,apk打包

    keystore.jks文件生成,打包APK 选中项目右键-> Android Tools->Export Signed Application Package ,如图: 之后 点击Nex ...

  3. Mac系统下查看Android studio默认debug签名与正式签名的SHA1值

    https://blog.csdn.net/weixin_32364917/article/details/80095063 获取默认debug签名SHA1值方法,也可以直接打开系统的终端 输入: k ...

  4. Android Studio 自定义debug签名文件keystore

    Android Studio 自定义debug签名文件keystore

  5. 将Android Studio默认布局ConstraintLayout切换成LinearLayout

    将Android Studio默认布局ConstraintLayout切换成LinearLayout     大部分人初次使用google android 扁平化布局ConstraintLayout都 ...

  6. 修改Android Studio默认的API Level(SDK版本)

    原文:修改Android Studio默认的API Level(SDK版本) Android Studio(2.1.2)新建工程的时候只会让你选择最低支持的SDK版本,默认的目标编译SDK版本会以系统 ...

  7. 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 ...

  8. 浅谈Android Studio中项目结构中project模式的各个文件和文件夹

    致敬郭霖,这些知识是从第一行代码第二版中直接码下来的,谢谢他,注意每个条目前是否有. 1..gradle和.idea 这两个目录下放置的都是Android Studio自动生成的一些文件,我们无需关心 ...

  9. Android Studio 默认keystore 以及自定义keystore

    我们使用Android Studio 运行或测试我们的app  它使用一个默认的debug.keystore进行签名. 这个默认签名(keystore)是不需要密码的,它的默认位置在 $HOME/.a ...

随机推荐

  1. zsh + oh-my-zsh 默认shell

    项目地址 zsh -----> http://www.zsh.orgoh-my-zsh ----> http://ohmyz.sh The last shell you’ll ever n ...

  2. Java 线程池Future和FutureTask

    Future表示一个任务的周期,并提供了相应的方法来判断是否已经完成或者取消,以及获取任务的结果和取消任务. Future接口源码: public interface Future<V> ...

  3. Xcode8编辑代码崩溃解决办法

    更新了Xcode8带来了一系列问题,最大的困扰就是不支持插件了,而且最关键的是一敲代码就崩溃(就是写一个字母就开始崩),在网上找了很多解决,发现是之前装的插件遗留下来的问题,将插件全部删掉就解决了,下 ...

  4. java httpUtil

    public class HttpUtils { public static String getContent(String url, Map<String, String> heads ...

  5. jQuery使用ajaxSubmit()提交表单(在不希望页面跳转的情况下)

    原文:http://www.jb51.net/article/48728.htm ajaxSubmit(obj)方法是jQuery的一个插件jquery.form.js里面的方法,所以使用此方法需要先 ...

  6. UVA 814 The Letter Carrier's Rounds(JAVA基础map)

    题解:就是按照题目模拟就好 但是这个题目让我发现了我Java里面许多问题 具体看代码,但是还是分为这几个方面 属性的作用域问题,缓冲区问题,map与list映射的问题,输出多个空格不一定是/t,反转思 ...

  7. UVA 1393 Highways(数学思想)

    题意:给你n.m(n,m<=200),问你有多少条非水平.非垂直的直线有多少条经过至少两个点 题解:我们需要枚举的是只画一条线的矩形,对于大小a*b的矩形必须保证gcd(a,b)=1才能不重复 ...

  8. SQL 循环 FOR 语句

    ) DECLARE My_Cursor CURSOR --定义游标 FOR (SELECT userid FROM User) --查出需要的集合放到游标中 OPEN My_Cursor; --打开游 ...

  9. nginx web服务器详解1(转)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://freeloda.blog.51cto.com/2033581/1285332 大 ...

  10. lucene的分词器宝典

    分词器概念介绍: Analyzer类(分词器)就是把一段文本中的词按某些规则取出,提供和以后查询时使用的工具类,注意在创建索引时会用到分词器,在使用字符串搜索时也会用到分词器,这两个地方要使用同一个分 ...