SDK接入必备常识——keystore签名文件详解

作者: 分类: U8SDK 发布时间: 2015-05-01 17:55 63条评论

已经在使用u8sdk的童鞋应该知道,我们在u8sdk中增加了签名相关的配置。但是,有很多对Android不了解的童鞋,对签名文件还是了解甚少。关于u8sdk中自定义签名文件可以看之前的博客(自定义签名文件)。下面我们就来详细了解下Android里面的签名文件。

###什么是签名文件###

签名:签名是开发者生成应用apk的最后一步,使用Android sdk自带的工具对apk中的每一个文件做标记,以确保你的apk文件有自己唯一的”身份归属认证”。

只有签名文件相同且包名相同的apk才可以覆盖安装并保留用户信息。

Android签名有以下几个特点:

1.Android的所有软件都需要签名
2.可以使用使用self-signed(自签名),签名证书不需要某个认证中心授权
3.如果要发布给终端用户,你必须使用一个私钥private key进行签名,而不能使用SDK 工具生成的DEBUG KEY签名来发布软件
4.对于已经安装的软件,即使过了证书的有效期,软件还是可以正常运行
5.可以使用工具–KeyTools和Jarsigned来生成KEY和签名你的.apk文件Android

签名有两种方式DEBUG和RELEASE,

在开发测试期间使用DEBUG方式,BUILD时,会自动使用工具KeyTools创建KEY包括别名和密码。每次编译时,都会使用DEBUG的KEY进行签名,如果要发布则使用RELEASE方式,使用私钥进行签名,主要两两种方法:

1.在命令行中使用KeyTools和Jarsigner,如果没有合适的私钥,则使用KeyTool人工生成一个KEY来签名
2.在ECLIPSE的GUI界面中,使用EXPORT的向导来编译、生成私钥,签名。对于签名建议所有的的应用程序在其产品的生命周期中,都是用一种签名,主要是为了升级、软件多模块(软件由多个小软件组成)。
同时签名要考虑到证书和软件生命期,如果证书过期了则该软件以后就无法升级。如果想签名的软件在Android Market上发布,则证书必须是能够到2033.10之后,主要是为了保护用户能够有效升级。而keytools和jarsigned软件都在JDK所在bin目录下。

###使用DEBUG签名###

在第一次安装Android开发环境的时候,SDK工具已经创建了缺省的keystore/key和账号、密码:

keystore其实就是一个文件,存放以上信息的文件,由于使用了加密难以看懂。如果想改变keystore的位置,可以在eclipse中,使用 Windows > Prefs > Android > Build。Eclipse用户的签名工作都由ECLIPSE缺省都做了,用户无需操心,但DEBUG模式的签名只有365天有效期,过了有效期,编译会出错。但不用担心,只要将debug.keystore文件删除后,下次BUILD会自动生成的keystore和key的。debug.keystore文件一般在C:Documents and SettingsAdministrator.android目录下。

###使用eclipse开发环境导出RELEASE签名###

因为目前大部分开发者都是使用eclipse开发环境进行Android应用的开发,所以谷歌的adt插件提供了可视化界面来供开发者方便的生成签名文件。在ECLIPSE中选择某个项目,右击鼠标选择弹出菜单Android Tools > Export Signed Application Package或者使用File->Export->Android->”Export Android Application”,详细步骤可见下图:

第一步 选择项目

选择项目

第二步 选择keystore如果是第一次运行可以使用”create new keystore”,以后签名就可以使用“user existing keystore”

create new keystore

第三步 创建KEY

创建KEY

第四步 择签名后文件

择签名后文件

###使用命令行导出RELEASE签名###

首先进入jdk安装路径下面bin目录,可以调用keytool工具查看运行帮助,如下图:

Key1.jpg

Key2.jpg

Key3.jpg

接下来就可以输入命令去生成签名文件了

Key4.jpg

Key5.jpg

本文摘自原文地址:http://docs.anysdk.com/AndroidSign

本文出自 U8SDK技术博客,转载时请注明出处及相应链接。

本文永久链接: http://www.uustory.com/?p=1597

评论功能已经关闭,请加入U8SDK技术群进行讨论和咨询:207609068
Ɣ回顶部
U8SDK技术群 x
技术同学请加入
点击加入