您的位置:首页 > 移动开发 > Android开发

android开发之Ant多渠到混淆打包

2015-05-19 09:31 525 查看
1、首先安装ant ,下载地址http://ant.apache.org/不会安装的可以参考:

Mac: http://blog.csdn.net/zanelove/article/details/45789577

Win: http://www.cnblogs.com/hoojo/archive/2013/06/14/java_ant_project_target_task_run.html

2、利用Ant批量打包的基本思想是,每次打包后自动替换渠道号,以及自己要替换的参数,比如本demo就要不仅要替换渠道号,一些参数,还要替换图标和启动页面。

问: 这样带来了一个问题:Ant不支持循环,怎样循环打包?

答: 扩展包Ant-contrib能轻松解决这个问题

可以翻墙的同学可以到http://ant-contrib.sourceforge.net/自行下载,或者去我的云空间下载链接: http://pan.baidu.com/s/1qW5d0Ji 密码: da53 ;下载后直接把ant-contrib-1.0b3.jar放到Ant的lib文件夹即可。

3、生成并改写build.xml 执行如下命令

生成builder.xml

android update project --name 项目名称 -t 1 -p 项目路径

如:

android update project --name AntTest -t 1 -p /Users/xx/Documents/workspace/AntTest


此命令在当前的工程目录生成build.xml, -t 表示targetid,可以通过android list targets查看 ; -p 表示指定工程目录.

改写builder.xml

参考Demo中的builder.xml文件,对你的builder文件进行改写!!

链接: http://pan.baidu.com/s/1ntqW2ST 密码: 1fvx

4、生成ant.properties 内容如下:market_channels是用来替换的参数以:和-分割。

java.encoding=utf-8

out.absolute.dir=/Users/frank/Documents/publish_testbyfrank

gos.path=/Users/frank/Documents/publish_testbyfrank_bin

proguard.config=proguard.cfg

app_version=1.5

market_channels=\u65B0\u77E5:60-xinzhi,\u897F\u5149:18-xiguang


5、project.properties文件中打开混淆代码,去掉下面所在行的#

#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt


6、编写proguard-project.txt,demo中有,大家自行删减

6、执行命令ant deploy就慢慢等待生成的多渠道的apk吧

7、最后在目录/Users/frank/Documents/publish_testbyfrank_bin下生成了两个apk: testbyfrank_xiguang.apk 和testbyfrank_xinzhi.apk

8、注意事项及可能遇到的问题

工程如果引用到其它类库工程,请先生成类库的build.xml。

如果提示invalid resource directory name: /Users/frank/Documents/workspace/appcompat_v7/bin/res/crunch等类似的错误请先手动删除bin目录,重新执行ant deploy命令。

如果出现Can’t read [/Users/frank/Documents/workspace/testbyfrank/libs/Android_Location_V1.1.0.jar] (No such file or directory)类似的错误,表明你没有用到这个类库,请在混淆文件中去掉对应的即可。

如果xml文件有用到自定义的控件,对应的java文件不能混淆。

如果用的gson的库,对应的实体类不可以混淆。

使用Ant批量打包Android应用完全指南:http://www.tuicool.com/articles/IvAnyy
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息