Android ant自動打包指令碼:自動替換友盟渠道、版本號、包名
Android專案開發時,給公司人員安裝,頻繁升級,版本號總需要改,太麻煩,跟著時間變,自動升級才方便。
Android專案開發新版時,手機上可能要裝兩個版本,一個是 老的正式版,一個是 新的開發版,想共存的話,要包名不一樣,比如chrome是com.android.chrome,而chrome beta是com.chrome.beta,自動改包名才方便。
Android專案正式釋出時,發到各個市場上,要統計各個渠道的效果,所以打包要打幾十次,自動打包才方便。
所以開發了這個指令碼,如下:
專案程式碼:https://github.com/sinkcup/AntDemo
測試APP:http://com-163-sinkcup.qiniudn.com/io.github.sinkcup.ant-cnblogs-1.1.apk
截圖:
打包時自動更換友盟渠道
ant auto-release -DUMENG_CHANNEL=googlePlayStore
即會把AndroidManifest.xml中的友盟渠道替換成googlePlayStore,然後打包
ant auto-release -DUMENG_CHANNEL=xiaomiAppStore
即會打出小米應用商店的包
打包時自動更換包名
ant auto-release -Dpackage=com.example.ant.beta
把包名自動改成com.example.ant.beta,然後打包
打包時使用時間作為版本號
ant auto-debug -Dversion=time
把版本號改成時間,然後打包,效果:
versionCode是時間戳,比如1390969254
versionName是日期,比如14.1.29.1220
多個引數任意組合
ant auto-release -DUMENG_CHANNEL=googlePlayStore -Dpackage=com.example.ant.beta -Dversion=time
即打出google play的beta包,使用時間作為版本號
debug與release簽名
ant auto-debug
使用debug簽名(路徑~/.android/debug.keystore),請參考http://developer.android.com/tools/publishing/app-signing.html#debugmode
ant auto-release
使用release簽名,請修改ant.properties中的路徑、密碼等等,參考http://developer.android.com/tools/building/building-cmdline.html#ReleaseMode
如何整合到我的專案裡
前提:瞭解Android官方文件,在專案目錄中執行ant debug能打包,比如常見的打包步驟:
android update project -p . -s -t "android-19"
ant debug
如果ant debug打包能通過,則可以使用下面的自動打包。
下載custom_rules.xml,放到專案目錄(假設為Project1),然後執行:
ant auto-debug -Dversion=time
即可,生成的包在./bin/中。
如果想打release包,下載ant.properties,修改其中的密碼等配置,然後執行:
ant auto-release -DUMENG_CHANNEL=googlePlayStore -Dpackage=com.example.ant.beta
即可。
PS:友盟支援按渠道升級,比如cnblogs渠道升級完成還是cnblogs,googlePlayStore升級完成還是googlePlayStore。
比如
cnblogs渠道包:http://com-163-sinkcup.qiniudn.com/io.github.sinkcup.ant-cnblogs-1.1.apk
google渠道包:http://com-163-sinkcup.qiniudn.com/io.github.sinkcup.ant-googlePlayStore-1.1.apk
執行截圖:
相關文章
- 自動化瓦力多渠道打包python指令碼Python指令碼
- Gradle多渠道打包(動態設定App名稱,應用圖示,替換常量,更改包名,變更渠道)GradleAPP
- 使用 Fastlane 實現 iOS 跟 Android 自動打包指令碼ASTiOSAndroid指令碼
- iOS —— 兩套自動打包指令碼iOS指令碼
- 自動增加 Android App 的版本號AndroidAPP
- React Native開發中自動打包指令碼React Native指令碼
- iOS自動構建打包釋出指令碼iOS指令碼
- Flutter 多環境、多渠道自動打包Flutter
- Oracle ADG 自動切換指令碼分享Oracle指令碼
- 【OracleSQL】常用自動替換總結OracleSQL
- jenkins配置android自動打包平臺JenkinsAndroid
- 案例八:Shell自動化管理賬號指令碼指令碼
- 用bat指令碼自動生成安裝包InnosetupBAT指令碼
- 360加固+美團walle多渠道自動化打包
- centos 自動啟動指令碼和自啟動服務CentOS指令碼
- 介面自動化之引數動態生成替換
- specjvm自動化指令碼JVM指令碼
- 自動備份指令碼指令碼
- Ubuntu自動啟動配置指令碼Ubuntu指令碼
- Android開發之指令碼替換PackageNameAndroid指令碼Package
- MySQL自動備份指令碼30天自動刪除MySql指令碼
- Python——自動簽到指令碼Python指令碼
- Dockerfile---指令碼自動化Docker指令碼
- vue自動化部署指令碼Vue指令碼
- Jenkins持續部署-自動生成版本號Jenkins
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- 自動化運維-修改主機名&hosts檔案指令碼運維指令碼
- mydumper自動化安裝指令碼指令碼
- oracle自動冷備份指令碼Oracle指令碼
- 實現指令碼自動部署docker指令碼Docker
- Android JNI 程式碼自動生成Android
- 可自動切換 learnku 夜間 / 白天模式的 python 指令碼模式Python指令碼
- 安卓抓取JD wskey + 新增指令碼自動轉換JD cookie安卓指令碼Cookie
- 使用Jenkins實現前端自動化打包部署(Linux版本)Jenkins前端Linux
- 【Flutter】如何寫一個Flutter自動打包成iOS程式碼模組的指令碼FlutteriOS指令碼
- Android 多包名打包應用Android
- awr報告每天自動生成指令碼指令碼
- Linux 新增指令碼開機自啟動Linux指令碼
- Python 指令碼自動視窗截圖Python指令碼