
3.9 签名Android应用程序
任何Android应用程序(apk文件)都必须签名才能使用,即使是在Eclipse中编译生成的apk文件也必须要使用debug.keystore文件[ 专门调试程序的签名文件。]进行签名。读者可以打开“Preferences”对话框,单击左侧的“Android”>“Build”节点,会在右侧界面的下方看到debug.keystore文件的路径。Windows下的路径如图3-16所示。

▲图3-15 调试Android应用程序

▲图3-16 debug.keystore文件在Windows下的路径
debug.keystore文件在Mac OS X下的路径如图3-17所示。

▲图3-17 debug.keystore文件在Mac OS X下的路径
注意
由于debug.keystore文件在不同PC上可能不同,所以用真机在一台PC上调试程序,有可能再换另外一台PC调试程序(仍然使用原来的真机),就会出现签名不正确的错误提示,无法将使用debug.keystore文件签名的apk文件安装在真机上。解决的方法就是将真机上老的程序卸载,再进行调试。
尽管使用debug.keystore文件签名的apk文件可以安装在手机上,但无法传到Google Play上。Google Play禁止上传用debug.keystore签名的apk文件,因此,在发布Android应用程序之前要进行签名(不能使用debug.keystore文件)。
选择要签名的Android工程,在右键菜单中单击“Android Tools”>“Export Signed Application Package”菜单项,会弹出“Export Android Application”对话框,如图3-18所示。该界面要求指定要签名的Android工程,一般使用默认值即可。然后单击“Next”按钮进入下一个设置界面,如图3-19所示。
在图3-19所示的界面中要求指定一个签名文件名(与debug.keystore文件的性质相同)以及密码,然后单击“Next”按钮进入如图3-20所示的设置界面,在该界面主要输入Alias(输入任意字符串即可)、Key的密码(与上一界面的密码相同即可)、Validity(years)。其中Validity(years)至少要30年,否则Google Play无法上传。下面的信息至少要输入First and Last Name。最后单击“Next”按钮进入最后一个设置界面,如图3-21所示。在该界面中只需要指定了签完名的apk文件保存的路径,单击“Finish”按钮就会在相应的路径同时生成apk文件(已签完名)和签名文件(在图3-19所示的界面中指定的文件)。如果下次再为其他Android应用程序签名,可以直接使用这个签名文件,也就是在图3-19所示的界面中选择“Using exiting keystore”项,并输入密码即可。

▲图3-18 指定要签名的Android工程

▲图3-19 指定签名文件和密码

▲图3-20 指定更详细的信息

▲图3-21 指定签完名的apk文件保存的路径
现在已经完成了Android应用程序从开发、调试到发布的全部工作。经过签名的apk文件已经可以直接发布到Google Play上了。