Android 手把手教apk签名

       我们公司的项目,最近突然全部下线,产品经理追踪原因好像是我们apk的签名是用的公用签名,金山那边的测试工程师建议我们将其改为私有签名。现在的软件的检测开始变得很严格了,我们头说以前有一次忘记签名了都还可以上传,可见现在的检测是越来越严格了,不过这也是好事。为了能够再次快速上线,我这个小菜鸟只好学习一下Android apk的签名,以下是我的一点经验分享。

      以下全是我自己的理解和经验,若有不恰当之处,敬请指正!
      ※ 为什么要签名?
1、是开发者身份认证。之前我们开发的CC网络电话没签名,它的包名和360上的一个CC皮肤是一样的,当上传后被替换掉名字。签名的好处是:要是有网上的山寨想冒充你的app,跟你的包名取成一样的,你如果签名后用户下载他们的app就不会替换你的app。及app的签名是它的重要标示。只有相同的包名和签名才会替换。
2、防止交易中的抵赖行为。如果你给你的app签名了,你就要为它的信息负责。因为签名是根据公钥私钥的复杂加密,有权威的第三方获得公钥,你自己掌握私钥。一套签名数字证书是不可破解的(但其实我们广泛应用的MD5和SHA-1数字签名都在2004年被山东大学教授王小云破解,历史上称9.11事件。此事件让全世界顶尖的密码学专家都震惊不已,甚至表示“一觉醒来,一切都变了!”我们暂且觉得它在短期内无法破解)。所以,要是在你的app种出现不良信息,你是不能抵赖的,因为有你的签名。
3.传输数据的完整性。因为签名对工程中包内容进行处理来确保在传输过程中不被居心叵测之人替换。
     ※签名步骤
(在Eclipse中签名)

 1、选一个Eclipse工程,右击选择Android Tools → Export  Signed Application (可能会有如下提示框,若是没有,请跳过2,直接看3)

2、如上图,我的工程跳出这个错误,在网上查了一下,这个ProGuard.cfg是混淆文件。图中下方的Description下的红叉叉右边的提示意思是说将keepclasswithmembernames替换成keepclasswithmembers,双击红叉叉这行,打开proguard.cfg文件后将提示的错误修改好即可。

3、跳出如下图的提示,确认工程名后点击下一步(Next)。


4、出现如下图的提示框:根据实际情况选择,如果您已经有keystore就选第一个(大多数看到这个博客的应该是没有keystore的),所以,我们现将如何创建喽。选择第二个,红箭头所指。


5、点击Browse...按钮选择您要生成keystore的路径(要记住这个路径哦,以后你就可以直接选择上图的Use existing keystore选项了,可以节省好多力气∩_∩~~)。注意,这个时候你点击保存是不行的,还要在“文件名”这一输入框为你的keystore取一个名字,然后点击保存。

6、在Password和Confirm栏里两次输入你的keystore的密码即可。然后就点击Next。

7、出现如下提示框

Alias的意思是别名。你再为你的key去一个别名。可以是中文哦。

Password:为这个key设定密码(不必要和前面的keystore密码相同,前面的keystore是存key的)。

Confirm:确认这个密码。

Validity(Years):有效期,单位是年。我一般是写999年。

First and Last Name:你的姓名,如:王五

Organization Unit:公司部门,如:百度公司技术部

Organization:公司名,如:北京市XX股份有限公司

City or Province:省或直辖市,如:北京市,山东省

State or Province:市或直辖市。如:北京市,烟台市

Country Code:中国是cn。(若你的国家不是中国,可以参考我博文最下方的第二条链接,那里提供了一些其他国家的Country Code)

8、点击Next后出现对话框,点击Browse...选择你希望将签名后的apk存入的路径。要记住哦,这样你可以根据这个路径找到你签名的apk。点击finish,等待,只要你信息填写正确,那个Alias没有重名的,基本都能够成功。然后到相应路径找到你签名的apk即可。


另外,在下一次你的同一个公司的另外的项目上线时,你也可以用同一个keystore。也即,在上面的第四步时,可以直接选择Use existing keystore。然后找到之前存keystore的路径,输入密码。然后基本与上面的大同小异,相信大家都可以灵活变通。

大家还可以参考以下的资料:

参考:http://yangguangfu.iteye.com/blog/723182

            http://www.aocexp.com/cgi-bin/GInfo.dll?DispInfo&w=shhuanya&nid=8318

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值