建立apk定時自動打包系統第三篇——代碼自動更新、APP自動打包系統

來源:互聯網
上載者:User

標籤:android   style   http   io   color   os   ar   使用   java   

我們的思路是每天下班後團隊各成員在指定的時間(例如下午18:30)之前把各自的代碼上傳到SVN,然後伺服器在指定的時間(例如下午18:30)更新代碼、執行ant 打包命令、最後將apk包存放在指定目錄(或者上傳指定ftp目錄)、其他部門或者同事可以訪問指定的地址來下載最新的APK包。就是在ubuntu系統中建立一個定時任務,這個任務每天會在指定時間執行事先編寫好的編譯指令碼。這個定時任務在ubuntu中可以使用crontab來實現。(還不瞭解crontab的同學自行腦補啦)

一、環境準備

1、在ubuntu 12.04搭建編譯環境。

關於Linux下ant編譯Android的步驟可以參考 《建立apk定時自動打包系統第一篇——Ant多渠道打包並指定打包目錄和打包日期》和《建立apk定時自動打包系統第二篇——自動上傳檔案》 這個文章。這個文章雖然是在windows上操作的,但是步驟都是相似的。相信作為聰明的程式猿這點是可以舉一反三的。

2、搭建好apk的編譯環境之後我們要安裝SVN用戶端。unbuntu安裝SVN非常簡單。執行下列命令

sudo apt-get install subversion

等待完成之後,執行下面命令

svn --version

如果出現了svn版本以及相關協助等資訊說明svn已經安裝好了。

二、安裝apache服務

由於我的ubuntu伺服器已經綁定了公司內網的IP(192.168.0.115),只要我將apk包存放在指定目錄下(如apk),那麼其他同事就是可以在瀏覽器中使用192.168.0.115/apk下查看或下載已經打好包的apk了。

1、安裝apache服務。

ubuntu中安裝apache服務也是很簡單的。

sudo apt-get install apache2

?安裝好之後,自動開啟了apache服務,其對外訪問的目錄預設是在/var/www/目錄下,所以在瀏覽器中輸入localhost,並出現It work!字樣,說明apache服務安裝成功

1、修改ant.properties

在這個檔案中我們指定一個apk儲存目錄為apache服務下的一個目錄

key.store=./test.keystorekey.alias=test.keystorekey.store.password=testkey.alias.password=testapk.dir=/var/www/apkapp.name=AntDemo#channel numbersmarket_channels=default_channel

這樣,ant打好包之後只要是公司內網的同事就可以訪問192.168.0.115/apk來下載最新的apk包了。

二、編寫apk編譯執行指令碼

在《建立apk定時自動打包系統第一篇——Ant多渠道打包並指定打包目錄和打包日期》文章中,我們是使用

ant deploy

進行打包的。因此我們的指令碼的思路也是很簡單的,先使用svn update 項目代碼,然後使用ant deploy 命令。

1、在項目根目錄(例如我的項目目錄是/data/appworks/AntDemo)下面建立一個build-app.sh檔案。檔案的內容如下:

#!/bin/shexport JAVA_HOME=/data/dev/jdkexport ANT_HOME=/data/dev/antexport PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATHcd /data/appworks/AntDemo/#update echo "updating code from server."svn update --username 你的svn使用者名稱 --password svn密碼,無可省略echo "update finish.begin building the project."#deployant deployecho "building app is finishing."

上面藍色部分一定要設定,否則crontab不會執行這個指令碼。這個問題困擾了樓主好久。切記切記!

編寫好shell指令碼之後,給build-app.sh添加執行許可權

chmod +x build-app.sh

然後在項目目錄下手動執行下這個指令碼看看有沒有錯,如果可以打包成功,那麼說明這個指令碼是正確的了。

2、建立crontab任務。

使用下面命令編輯一個crontab任務

crontab -e

這個時候在shell中就開啟了crontab的編輯狀態下的頁面,在這個頁面的後面插入下面的指令

30 18 * * * /data/appworks/AntDemo/build-app.sh

然後編輯,儲存

這時候crontab就會在每天的18:30執行/data/appworks/AntDemo/build-app.sh 執行打包命令了。

 

建立apk定時自動打包系統第三篇——代碼自動更新、APP自動打包系統

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.