溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Ant 多渠到混淆打包

發(fā)布時間:2020-06-29 03:46:53 來源:網(wǎng)絡(luò) 閱讀:567 作者:womendemeiha8 欄目:開發(fā)技術(shù)

最近剛忙完了一個項目,本以為可以好好放松一下了,沒想到客戶提了一個變態(tài)的要求,同時要打包上線100多個渠道,需要替換圖標(biāo),啟動頁還有一堆煩人的參數(shù),粗略估計一個一個打包,至少兩天時間,真是醉了。心中一陣草泥馬飛過之后,想著自己的尾款還沒到賬,只能硬著頭皮搞一個自動化的打包腳本。

1、首先安裝ant ,下載地址http://ant.apache.org/不會安裝的可以參考http://yarin.blog.51cto.com/1130898/692569。

2、利用Ant批量打包的基本思想是,每次打包后自動替換渠道號,以及自己要替換的參數(shù),比如本demo就要不僅要替換渠道號,一些參數(shù),還要替換圖標(biāo)和啟動頁面。

這樣帶來了一個問題:Ant不支持循環(huán),怎樣循環(huán)打包?

擴(kuò)展包Ant-contrib能輕松解決這個問題

可以×××的同學(xué)可以到http://ant-contrib.sourceforge.net/自行下載,或者去我的云空間下載http://pgyer.qiniudn.com/ant-contrib-1.0b3.jar,下載后直接把ant-contrib-1.0b3.jar放到Ant的lib文件夾即可。

3、生成并改寫build.xml 執(zhí)行如下命令

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

此命令在當(dāng)前的工程目錄生成build.xml, -t 表示targetid 可以通過android list targets查看 -p 指定工程目錄

修改build.xml 代碼見demo

4、生成ant.properties 內(nèi)容如下:market_channels是用來替換的參數(shù)以:和-分割。

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、執(zhí)行命令ant deploy就慢慢等待生成的多渠道的apk吧

7、最后在目錄/Users/frank/Documents/publish_testbyfrank_bin下生成了兩個apk

testbyfrank_xiguang.apk 和testbyfrank_xinzhi.apk

自己抽離出來的demo已經(jīng)經(jīng)過我的測試沒有問題,大家可以通過http://pgyer.qiniudn.com/testbyfrank.zip下載示例代碼。

注意事項及可能遇到的問題

1.工程如果引用到其它類庫工程,請先生成類庫的build.xml

2.如果提示invalid resource directory name: /Users/frank/Documents/workspace/appcompat_v7/bin/res/crunch等類似的錯誤請先手動刪除bin目錄,重新執(zhí)行ant deploy命令

3.如果出現(xiàn)Can't read [/Users/frank/Documents/workspace/testbyfrank/libs/Android_Location_V1.1.0.jar] (No such file or directory)類似的錯誤,表明你沒有用到這個類庫,請在混淆文件中去掉對應(yīng)的即可。

4.如果xml文件有用到自定義的控件,對應(yīng)的java文件不能混淆

5.如果用的gson的庫,對應(yīng)的實體類不可以混淆。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI