从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程


从eclipse到应用商城

­——Android项目混淆签名加固打包上线全流程


说明:

       这篇文章是笔者上线Android项目的经验总结,亲身测试,保证真实可用。

主要内容如下:


1 混淆

 对eclipse项目目录下project.properties文件和proguard-project.txt文件进行修改,实现代码混淆,为自己的apk增加初级防护

2使用eclipse项目右键AndroidTool生成自己的签名文件和签过名的apk

3 使用doc控制台获取签名文件中的SHA码,从百度地图上生成新的key,使用第2步中生成的签名文件以同样的步骤再次导出apk。(这一步主要针对项目中使用了第三方接口和key的开发者,如果没有使用可以直接忽略)

4 使用360加固宝对第3步中生成的apk进行加固处理。使用APKSign软件为加固后的apk文件进行重新签名

5将自己签名、加固后的应用发布到应用商城

 

一、   代码的混淆 

     在将自己的Android项目导出为apk文件之前,我们最好将代码混淆一下,防止恶意侵权和破解,eclipse给我们提供了这样的工具,做法如下:


1 找到项目下project.properties文件,打开后将

#proguard.config=${sdk.dir}/tools/proguar……

这句话前面的#去掉,也就是让这条指令生效


图示:修改前

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第1张图片


图示:修改后

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第2张图片




2 找到项目下proguard-project.txt文件,在文件末尾增加这两句话:

-dontwarn com.baidu.**

-keep class com.baidu.** { *;}

意思是引用的第三方的包baidu包不被混淆,如果不加这个语句,导出项目就会报错,如果你使用的还有其他的包,同样增加这样的语句,将包名换一下即可。


图示:修改前

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第3张图片


图示:修改后

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第4张图片

完成这两步之后,如果apk被反编译工具反编译之后,类名会变成abcd等字母,会增加破解难度。

 



    二、生成自己的签名文件和签完名的apk


我们使用eclipse开发项目测试完成需要上线时,需要导出apk文件,我们在虚拟机上运行的时候,在bin文件夹下回自动生成一个apk文件。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第5张图片

  

   我们最好不好直接用这个apk文件。这是因为签名文件的缘故。签名文件后缀名是keystore。所谓的签名可以理解成自己的app署名,就是声明版本,表明自己是这个app的主人,这样便于声明权利,同样也要承担相应的责任和义务。所以每一个apk要想在设备上正常运行,必须要有自己的签名文件。当我们安装一个apk的时候,如果设备上已经有一个包名相同,签名文件也相同的apk,那么新的apk就会覆盖以前的apk,也就是程序升级。如果包名相同,签名文件不同,安装的时候会发生冲突,只有卸载掉旧的apk,才能装上新的。也就说,签名文件可以保护自己的应用不被恶意地破解和替代。


   当我们在虚拟机上测试自己开发的应用的时候,签名文件使用的是eclipse上自带的签名文件debug.keystore。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第6张图片

    

    为了以后便于升级和维护,我们最好使用自己的签名文件。方法如下:

Eclipse中选中项目,鼠标右键选择AndroidTool


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第7张图片

     

    会弹出一个对话框,选择要导出的项目。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第8张图片


    注意:项目名不能出现汉字,否则无法导出。如果项目中有汉字,copy项目重新命名即可。选择下一步,会让你选择一个签名文件,第一次使用的时候,选择create newkeystore,指定签名文件的存储位置和文件名,注意文件后缀名要手动加上,比如mykeystore.keystore,输入自己的密码。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第9张图片

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第10张图片

    如果是以后再导出项目,选择use exiting keystore,也就是使用自己已经创建好的签名文件,所以签名文件一定要保管好,密码也不能忘,否则自己开发的这个应用以后用户要升级的话就会很困难,要先卸载掉旧的,才能装你的这个新版的应用。而且自己开发的不同的项目也推荐使用同一个签名文件,以后自己的各个程序之间的维护会更加方便。

    

    选择下一步,设置自己证书的详细信息,alias别名,比如wangjinxi,validity是有效期,单位是年,尽量写长一点,比如100。下面就是自己的其他信息,包括姓名、单位、城市、省份、国家,中国使用CN即可。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第11张图片



     选择下一步,指定生成的apk所在的文件夹。

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第12张图片


    点完成,大约半分钟后,会生成一个签名文件和绑定了该签名文件的apk。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第13张图片



从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第14张图片

 

三、获取签名文件中的SHA码,申请新的百度地图key,使用已有的签名文件,重新导出新的apk文件


如果你的应用中使用了百度地图等第三方接口,这个步骤需要看一下,否则可以忽略。

当我们的项目中使用了百度地图等第三方的接口时(以下以百度地图为例),我们需要在百度地图的开发平台中申请一个key,并在自己项目的清单文件中配置这个key。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第15张图片


   申请这个key的时候,需要我们提供SHA码,每个签名文件中都对应着一个SHA码,我们在虚拟机上测试的时候,使用的是eclipse中默认签名的SHA码。


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第16张图片


   所以我们要做的就是获得自己签名中的SHA码,用这个码申请新的key,在项目清单文件中配置新的key,并重新导出项目。


获得签名文件中的SHA码

-----------------------------------------------


方法一、eclipse中导出签名的apk,方法同上,选择使用已经存在的keystore文件,点击下一步,就会看到这个证书的SHA码

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第17张图片

--------------------------------------------------


方法二,使用doc控制台

1 前提是你要安装jdk并配置环境变量


2 用cmd指令或者在开始菜单中打开控制条,输入

cd C:\Users\Administrator\Desktop\keystore_dir

回车打开签名文件,cd后面是你的签名文件所在的文件夹路径


3 输入

keytool -list -v -keystore mykeystore.keystore

回车,mykeystore.keystore是你签名文件的文件名


提示输入密钥库口令,直接回车即可看到证书的详细信息。

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第18张图片


其中证书指纹 (SHA1)就是我们需要的SHA码,复制出来

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第19张图片


-------------------------------------------------------

使用这个SHA码重新申请新的key,放入项目的清单文件中并重新导出项目。

注意导出的时候,使用我们之前创建的mykeystore.keystore签名文件,不要使用debug.keystore,也不要重新new一个keystore,因为签名文件和你的百度地图key要保持一致,否则地图无法正常显示。



导出签名项目步骤同上,唯一不同是,选择use exitingkeystore

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第20张图片



输入密码,选择别名,再次输入密码

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第21张图片


   会看到让你选择生成的apk的位置,并且你会看到这个签名的MD5码和SHA码,点击完成即可看到重新签名的apk文件。


   笔者曾经遇到错误,输入密码之后,别名一栏是空,后来导出好几次才成功,怀疑是签名文件损坏,也有可能是密码错误,所以要多试几次。这样就生成了有自己签名的并且能正常显示百度地图的apk文件。

 

四、加固和重新签名

   虽然我们已经对代码进行了混淆,但是签完名的apk不要直接上线。为了更好的保护我们的apk,推荐使用360加固保。


   操作起来比较简单,直接进入360加固保

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第22张图片


如果没有账号,需要注册一个,上传项目

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第23张图片


选择开始加固

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第24张图片


大概几分钟后加固完成,选择“下载应用”,会获得加固后的apk文件

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第25张图片



加固后的apk文件即使被反编译,也只能看到很少一部分,大多数的代码已经被编译成so文件,很难再被破解。

加固后的apk文件需要再次签名,可以使用APKSign,按照提示输入路径和密码即可。


APKSign下载地址:

http://download.csdn.net/download/wangjx562/9669187


从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第26张图片


       选择开始签名,我们会得到加固后并且签了名的apk

从eclipse到应用商城 —Android项目混淆签名加固打包上线全流程_第27张图片


五、上线

这样签名加固后的apk就可以上线了


(一)可以选择的应用商城

360移动开发平台

http://dev.360.cn/

应用宝

http://sj.qq.com/

应用汇

http://www.appchina.com/

小米开放平台

http://dev.xiaomi.com/console/

百度开发者平台

http://app.baidu.com/

优亿市场

http://www.eoemarket.com/

 

  voio、华为 不允许个人开发者发布应用, 安卓市场与百度合并,所以发到百度上就不用再上安卓市场了。豌豆荚,个人资质证明无法上传。安智、历趣、沃商店笔者没有用,大家可以试一下。


(二)需要准备的材料

1 开发者手持身份证相片

2 身份证正反面

3 apk图标

4 apk截图

有些还会要类似宣传海报的图片,而且大都会对图片的像素和大小作出比较严格的限制,所以你能会点photoshop就方便了,随时裁剪出符合商城要求的图片。

 

  通过混淆、加固、三次签名,我们的apk终于可以上线了,在令人期待(教人捉急)的审核后就能看到我们的应用了。


总结一下步骤:

1 混淆

在项目project.properties文件中去掉#注释

在proguard-project.txt文件中增加保护第三方包语句

实现代码混淆,为apk加上初级防护

2 第一次签名

项目右键AndroidTool

3 申请新key,第二次签名

从签名文件中获取SHA码,申请新的key,项目右键AndroidTool

4 加固,第三次签名

使用360加固保,上传第二次签名后导出的apk,获得新的apk,使用APKSign为加固后的apk文件进行第三次签名。

5 上线

准备好身份证相片、图标、截图、文字说明等材料,在360移动开发平台、应用宝、应用汇、小米开放平台、百度开发者平台、优亿市场等平台上发布自己的应用。

 

本文原创,版权所有,转载请标明出处,欢迎技术交流,严禁篡改抄袭。

[email protected]

 

 

你可能感兴趣的:(开发流程)