文档章节

Ant 多渠到混淆打包

r
 rabbit狂躁症
发布于 2015/05/14 16:02
字数 829
阅读 16
收藏 0

最近刚忙完了一个项目,本以为可以好好放松一下了,没想到客户提了一个变态的要求,同时要打包上线100多个渠道,需要替换图标,启动页还有一堆烦人的参数,粗略估计一个一个打包,至少两天时间,真是醉了。心中一阵草泥马飞过之后,想着自己的尾款还没到账,只能硬着头皮搞一个自动化的打包脚本。

1、首先安装ant ,下载地址http://ant.apache.org/不会安装的可以参考http://yarin.blog.51cto.com/1130898/692569

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

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

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

可以翻墙的同学可以到http://ant-contrib.sourceforge.net/自行下载,或者去我的云空间下载http://pgyer.qiniudn.com/ant-contrib-1.0b3.jar,下载后直接把ant-contrib-1.0b3.jar放到Ant的lib文件夹即可。

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

android update project --name testbyfrank -t 1 -p /Users/frank/Documents/workspace/testbyfrank

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

修改build.xml 代码见demo

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

自己抽离出来的demo已经经过我的测试没有问题,大家可以通过http://pgyer.qiniudn.com/testbyfrank.zip下载示例代码。

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

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

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

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

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

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


© 著作权归作者所有

r
粉丝 1
博文 16
码字总数 9272
作品 0
西安
私信 提问
Ant编译android,并Proguard代码混淆,v4混淆配置

忙了三四周,总算把购开心的ios版(appStore搜“购开心”)成功翻译成了android版,UI效果基本保持一致,上一张UI效果图吧,很养眼的: 还不错吧,进入正题吧。 以前一直是让我徒弟混淆和打包的...

辉兔狼
2013/09/03
0
1
Android Ant 批量多渠道打包实例

Android Ant 批量多渠道打包实例 关于批量打包,无需多言,这是每个国内Android开发者必须面对的一个问题。 下面,我就以开源项目「知乎小报」为例,详细说明如何使用ANT实现批量打渠道包。 ...

Cundong
2014/10/17
0
7
ant 打包加混淆时出错

下面那个错误是我用ant 打包时出现的,我在ant脚本里添加了混淆代码的target,然后编译出错,请各位高手帮忙解决一下吧,谢谢

liuwei10010
2012/04/27
615
0
Android ANT多渠道打包

在没用AndroidStudio的Gradle构建项目之前,多渠道打包一般都是基于ANT构建,所以在此记录一下,以供查阅! 一、文件准备 1、首先要去官网下载ANT代码。 ANT官网下载地址 2、下载ANT循环打包...

军歌
2014/11/20
0
3
Android中使用ant混淆编译

搞了好几天,查看了上百个网站,最后摸索出一套很简单的ant混淆编译的方法。下面开始: 1. 拿一个普通项目来说,首先为它加上ant编译功能。 android update project --name project_name -t ...

晨曦之光
2012/03/05
2K
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
45分钟前
4
0
CentOS 的基本使用

1. 使用 sudo 命令, 可以以 root 身份执行命令, 必须要在 /etc/sudoers 中定义普通用户 2. 设置 阿里云 yum 镜像, 参考 https://opsx.alibaba.com/mirror # 备份mv /etc/yum.repos.d/CentO...

北漂的我
昨天
2
0
Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
昨天
3
0
Java设计模式之外观模式(门面模式)

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口...

须臾之余
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部