当应用准备好对外发布, 必须:
如果使用Eclipse+ADT插件进行开发, 可以使用Export Wizard来处理整个的编译, 签名, 和优化过程. 在处理过程中, Export Wizard甚至允许生成一个新的keystore和私钥.
在给应用程序签名的准备阶段, 必须首先确保有一个用于签名的合适的私钥. 合适的私钥有如下要求:
密钥可以是自签名的. 如果没有一个合适的密钥, 必须使用Keytool生成一个.
为了向用户发布应用程序, 必须在release模式编译. 在release模式下, 编译好的应用程序默认是没签名的, 需要用私钥为它签名.
警告: 不能发布一个没有签名或者用debug key签名的应用程序.
要从Eclipse导出一个未签名的 .apk, 在Package Explorer中的project上点击鼠标右键, 选择Android Tools > Export Unsigned Application Package. 然后给未签名的.apk指定一个文件路径. (或者在Eclipse中打开AndroidManifest.xml文件, 点开Overview标签, 然后点击Export an unsigned .apk.)
注意, 完全可以在Export Wizard中执行整个的编译和签名步骤. 参见: 使用Eclipse ADT编译和签名.
如果使用Ant, 可以通过ant命令行的release选项开启release模式.
如果使用Eclipse和ADT插件, 可以用Export Wizard来导出一个签名的.apk(如果必要,甚至可以创建一个新的keystore.) Export Wizard为你处理所有Keytool和Jarsigner的交互操作, 这允许使用一个GUI界面来操作签名包的过程, 而不必人工处理各种编译, 签名, 以及优化对齐工作. 一旦向导编译并签名完.apk包, 它将也使用zipalign对包进行优化对齐处理. 因为Export Wizard使用到Keytool和Jarsigner, 应当确保在电脑上可以访问到这2样工具.
若要在Eclipse中创建一个签名并优化对齐后的.apk:
对于你和你的用户来说, 维护你的私钥的安全相当关键和重要. 如果你允许别人使用你的key, 或者如果你将keystore和密码放在一个不安全的地方, 以至于第三方可以找到并使用它们, 那么你的作者身份和用户信任度将受到连累.
如果第三方在你不知情或没得到你的允许的情况下控制和使用你的key, 那么随便一个人就都可以签名和发布恶意的应用程序来替换你发布的应用, 或者干脆取代你的应用. 然后这个人可以用你的身份签名和发布应用程序, 攻击其他应用甚至直接攻击系统, 以及损坏或偷取用户数据.
开发者(或团体)的名声取决于你对你的私钥的适当保密, 任何时候, 直到key过期. 下面是一些保证key的安全性的小提示.
通常情况下, 当生成,使用和保存你的key时, 如果根据常识做了提前的预防, 那么它将会保证安全.