转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50812391

可直接看看以下的Android Studio中签名应用

Android要求全部的应用在被安装之前进行数字签名认证。Android通过这个数字证书确定应用的作者,然这个证书并不须要特定机构的签字。Android一般使用自己签名的证书,开发人员自己持有证书的密钥。

你能够在调试或公布模式下相应用签名,普通情况下,在调试模式下,Android SDK会为应用自己主动生成一个签名证书。可是在公布模式下签名应用,你须要生成自己的证书。

调试模式下的签名的应用不能进行对外分发。


公布模式下签名应用

1、 创建keystore。keystore是一个包括私人密钥集合的二进制文件,请保存在安全且秘密的地方。

2、 创建私人密钥。私人密钥代表标识应用的组织或团体,如个人或公司。

3、 在app Module的build文件里加入签名配置:

...
android {
...
defaultConfig { ... }
signingConfigs {
release {
storeFile file("myreleasekey.keystore")
storePassword "password"
keyAlias "MyReleaseKey"
keyPassword "password"
}
}
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
...

4、从Android Studio中请求assembleRelease构建任务。

在包中app/build/apk/app-release.apk 文件就是公布签名打包的。

注意:在build文件里包括密码是不安全的。因此你要在build文件里配置的密码能够从系统环境变量或者进程提示中获取这些密码。

从环境变量中获取:

storePassword System.getenv("KSTOREPWD")
keyPassword System.getenv("KEYPWD")

从进程提示的命令行中获取:

storePassword System.console().readLine("\nKeystore password: ")
keyPassword System.console().readLine("\nKey password: ")

当你完毕这些操作后,就能够在应用市场中公布自己的应用了。

警告: 你必须确保keystore和私人密钥的安全和私密,确保安全备份。

假设你在应用市场中公布后。丢失了签名改应用的密钥库,你将不能进行不论什么更新,由于你对该应用的全部版本号进行签名都必须用同样的密钥。


Android Studio中签名应用

1、在菜单条点击 Build > Generate Signed APK.

2、在Generate Signed APK Wizard窗体,点击Create new去创建一个新的签名证书。假设已经有keystore能够直接进入第4步。

3、在New Key Store窗体中,提供相应的信息。假设你的密钥的有效期设置为25年。那么你的应用在有效期限内更新都必须使用同一个密钥。

(注:一个Key store中能够包括多个Key)

4、在Generate Signed APK Wizard窗体中,选择一个密钥库,一个密钥。输入密码,然后点击Next

5、在这个窗体,选择一个签名应用的保存位置然后点击Finish

接下来稍等片刻Android Studio就会帮你打包好的。

好了这就是签名打包的应用,赶快去个应用市场分发吧。

欢迎加Q群讨论:365532949

Android Studio签名打包应用的更多相关文章

  1. Android Studio签名打包的两种方式

    签名打包的两种方式: 注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如 ...

  2. Android: Android Studio签名打包的两种方式(zz)

    注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如果不知道签名是啥意思, ...

  3. Android Studio 签名打包

    项目开发完成后,如果要分发到Google play或者各个第三方渠道,签名打包是必不可少的,下面详细介绍整个签名打包过程,及如何查看签名. 1.创建签名文件 选择要打包的项目-点击Build-在弹出的 ...

  4. 1.9 Android程序签名打包

    本节引言: 本节给大家介绍的是如何将我们的程序打包成Apk文件,并且为我们的Apk签名! 1.什么是签名,有什么用: Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到 ...

  5. Android 混淆签名打包

    1.混淆文件 proguard-rules.pro # Add project specific ProGuard rules here. # By default, the flags in thi ...

  6. Android studio 使用心得(四)—android studio 多渠道打包(二)

    Android studio 使用心得(四)—android studio 多渠道打包 这篇文章讲了一种打包方式.是直接在android studio 里面可视化操作,结合配置文件.我个人觉得严格上来 ...

  7. Android studio 自定义打包apk名

    Android Studio打包应用默认生成的apk名称是:app-release.apk .如果我们要让生成的apk名跟我们版本包名有联系的话,那我们就要自定义生成的apk名了 需要在build.g ...

  8. [Android Studio] Android studio 多渠道打包(超简洁版)

    [Android Studio] Android studio 多渠道打包(超简洁版) 转载:http://xuyazhou.com/archives/461 http://relex.me/usin ...

  9. Android App签名打包 与 SDK开发文档

    Android App签名打包签名的意义1.为了保证每个程序开发者的合法权益2.放置部分人通过使用相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改3.保证我们每次发布的版本 ...

随机推荐

  1. raw cannot be resolved or is not a field解决办法

    解决raw文件夹问题 查看左侧项目/res文件夹下是否有raw文件夹,(一定是放到res文件夹下,raw在项目开始创建时候不会自动创建,所以要自己创建)

  2. ubuntu命令行使用ftp客户端

    转载 本篇文章主要介绍在Ubuntu 8.10下如何使用功能强大的FTP客户端软件NcFTP. Ubuntu的源里为我们提供了FTP客户端软件NcFTP,可这款工具对新手来说不是很方便.本文介绍的是一 ...

  3. WindowsService+Quartz.NET快速搭建

    新建一个Windows服务项目 nuget安装Quartz.NET,我这边使用的是2.3.3版本 1. Service改名 2. 添加安装程序,改名 3. ServiceInstaller->属 ...

  4. iTOP-4412开发板网盘资料介绍

    iTOP-4412开发板网盘视频资料内容如下: 01-烧写.编译以及基础知识视频 02-嵌入式Linux 视频 03-iTOP-4412 开发板硬件设计指导视频 04-Android 应用程序视频 0 ...

  5. HP11.31安装11.2.0.3实施手册

    1 前言 此文档详细描述了Oracle 11gR2 数据库在HP11.31上的安装RAC的检查及安装步骤.文档中#表示root用户执行,$表示grid或oracle用户执行. 2 系统环境 操作系统环 ...

  6. CAD使用GetAllAppName读所有名称(com接口)

    主要用到函数说明: MxDrawEntity::GetAllAppName 得到所有扩展数据名称,详细说明如下: 参数 说明 [out, retval] IMxDrawResbuf** ppRet 返 ...

  7. vue-cli 中使用less

    (1)安装Less模块: npm install less (2)安装less和less-loader,命令如下 npm install less less-loader --sava-dev (3) ...

  8. 01C#程序结构及编辑编译环境

    C#程序结构及编辑编译环境 程序结构 C# 中的组织结构的关键概念是程序 (program).命名空间 (namespace).类型 (type).成员 (member) 和程序集 (assembly ...

  9. JAVA基础——IO流字符流

    字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为上一篇文章写了,一个Unicod ...

  10. jq ajax请求error: Maximum call stack size exceeded

    原因是data中参数iconUrl这个变量未声明导致的.jq在内部循环时报错