分享

Android的软件签名

 命運之輪 2012-08-30
目前手机平台的软件基本上都需要签名,Android也不例外,不过Android签名也有其特点,比SYMBIAN方便多了。
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方式,使用私钥进行签名,主要两两种方法:
    • 在命令行中使用KeyTools和Jarsigner,如果没有合适的私钥,则使用KeyTool人工生成一个KEY来签名
    • 在ECLIPSE的GUI界面中,使用EXPORT的向导来编译、生成私钥,签名。

对于签名建议所有的的应用程序在其产品的生命周期中,都是用一种签名,主要是为了升级、软件多模块(软件由多个小软件组成)。同时签名要考虑到证书和软件生命期,如果证书过期了则该软件以后就无法升级。如果想签名的软件在Android Market上发布,则证书必须是能够到2033.10之后,主要是为了保护用户能够有效升级。而keytools和jarsigned软件都在JDK所在bin目录下。

下面介绍下两种签名的方法:

  • Debug 签名

SDK工具已经创建了缺省的keystore/key和账号、密码
Keystore name – "debug.keystore"
Keystore password – "android"
Key alias – "androiddebugkey"
Key password – "android"
CN – "CN=Android Debug,O=Android,C=US"

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

  • Release签名
    Android的Relase签名也很简单,首先用RELEASE方式编译应用软件,然后获取一个合适的私钥签名即可。由于我使用ECLIPSE开发的,这里就只介绍如何使用ECLIPSE进行RELEASE签名,用命令行方式签名就不做介绍。在ECLIPSE中选择某个项目,右击鼠标选择弹出菜单Android Tools > Export Signed Application Package或者使用File->Export->Android->"Export Android Application",详细可见下图。

 

图1 选择项目

图2 选择keystore

 第一次运行可以使用"create new keystore",以后签名就可以使用“user existing keystore”。

图3 创建KEY

图4-选择签名后文件

签名就以上这些内容还是很方便的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多