Android自動(dòng)打包apk上傳到蒲公英并發(fā)送郵件

本文主要介紹 gradle 打包命令捣鲸,以及使用?python 腳本實(shí)現(xiàn)自動(dòng)打包 apk 上傳到蒲公英測(cè)試平臺(tái)瑟匆,并且發(fā)送郵件通知測(cè)試人員。?

gradle 打包命令介紹

./gradlew assembleDebug 編譯并打Debug包?

./gradlew assembleRelease 編譯并打Release的包

使用Android Studio創(chuàng)建一個(gè)新的工程栽惶,然后進(jìn)入工程的根目錄愁溜,然后在終端執(zhí)行命令:

./gradlew assembleRelease

打包成功提示:

BUILD SUCCESSFUL

此時(shí)在目錄:/app/build/outputs/apk/release/下面會(huì)生成apk安裝包。

app-release-unsigned.apk

如果你看到的是app-release-unsigned.apk命名的安裝包外厂,不要疑惑冕象。那是因?yàn)槟銢](méi)有在工程中配置簽名文件。

配置簽名文件

使用Android Studio生成一個(gè)新的簽名文件(Test123456是演示Demo的簽名文件名稱(chēng))汁蝶,然后在app/build.gradle文件中增加signingConfigs字段:

apply plugin: 'com.android.application'

android {

? ? compileSdkVersion 28

? ? defaultConfig {

? ? ? ? applicationId "com.example.test"

? ? ? ? minSdkVersion 16

? ? ? ? targetSdkVersion 28

? ? ? ? versionCode 1

? ? ? ? versionName "1.0"

? ? ? ? testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

? ? }

? ? signingConfigs {

? ? ? ? debug {

? ? ? ? ? ? File strFile = new File("../Test/Test123456")

? ? ? ? ? ? storeFile file(strFile)

? ? ? ? ? ? storePassword "123456"

? ? ? ? ? ? keyAlias "key0"

? ? ? ? ? ? keyPassword "123456"

? ? ? ? }

? ? ? ? release {

? ? ? ? ? ? File strFile = new File("../Test/Test123456")

? ? ? ? ? ? storeFile file(strFile)

? ? ? ? ? ? storePassword "123456"

? ? ? ? ? ? keyPassword "123456"

? ? ? ? ? ? keyAlias "key0"

? ? ? ? }

? ? }

? ? buildTypes {

? ? ? ? release {

? ? ? ? ? ? signingConfig signingConfigs.release

? ? ? ? ? ? minifyEnabled false

? ? ? ? ? ? proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

? ? ? ? }

? ? }

}

配置完簽名文件渐扮,我們?cè)僦匦聢?zhí)行打包命令(不要忘了buildTypes中的配置)。

app-release.apk

使用命令打包成功掖棉。


python 腳本打包

你可能會(huì)說(shuō)墓律,我對(duì) python 一點(diǎn)都不懂呀!沒(méi)關(guān)系幔亥,下面的打包腳本耻讽,你都能看懂,不需要擔(dān)心紫谷。下載腳本文件autobuild.py

打包需要的一些配置信息

配置蒲公英

API_KEY = "xxxxxxxxxxxxxxxxxxxx"

PGYER_DESC = "xxxxxxxxxxxxxxxxxxxx"

上傳蒲公英我們需要配置蒲公英給我們分配的 API Key齐饮,以及版本描述信息捐寥。API Key是必填的,版本描述可以不傳或者為空祖驱,后面我們會(huì)介紹其他一些上傳信息握恳,比如安裝時(shí)是否需要密碼等等。

獲取?API Key 方式:

API Key

配置郵件

from_addr = "xxxx@163.com"

password = "xxxxxxxx"

smtp_server = "smtp.163.com"

to_addr = 'xxxx@xx.com'

發(fā)送郵件捺僻,我們需要配置發(fā)送郵件賬號(hào)乡洼、密碼、郵件 smtp服務(wù)器 以及收件人匕坯。我們還需要開(kāi)啟發(fā)送郵件的 SMTP服務(wù)束昵,這里以163郵件開(kāi)啟為例:

SMTP服務(wù)

腳本介紹

打包apk

def build_apk():

? ? print "exporting..."

? ??build_com = "./gradlew assembleRelease"

????os.system(build_com)

上傳蒲公英

def upload_Pgyer():

? ? print "uploading..."

? ? apk_path = "./app/build/outputs/apk/release/app-release.apk"

? ? print "apk_path:"+apk_path

? ? apk_path = os.path.expanduser(apk_path)

? ? upload_com = "curl -F 'file=@%s' -F '_api_key=%s' -F 'buildUpdateDescription=%s' https://www.pgyer.com/apiv2/app/upload" % (apk_path,API_KEY,PGYER_DESC)

? ? os.system(upload_com)

buildUpdateDescription:(選填) 版本更新描述,可以傳空字符串葛峻,或不傳锹雏。

這是蒲公英給我們定義的接口說(shuō)明,里面有好多參數(shù)术奖,具體參數(shù)請(qǐng)看參數(shù)說(shuō)明

蒲公英上傳API地址

發(fā)送郵件

def send_mail():

? ? msg = MIMEText('Android測(cè)試項(xiàng)目已經(jīng)打包完畢礁遵,請(qǐng)前往 https://www.pgyer.com/xxxxx 下載測(cè)試!', 'plain', 'utf-8')

? ? msg['From'] = _format_addr('自動(dòng)打包系統(tǒng) <%s>' % from_addr)

? ? msg['To'] = _format_addr('測(cè)試人員 <%s>' % to_addr)

? ? msg['Subject'] = Header('Android客戶(hù)端打包程序', 'utf-8').encode()

? ? server = smtplib.SMTP(smtp_server)

? ? server.ehlo()

? ? server.starttls()

? ? server.ehlo()

? ? server.login(from_addr, password)

? ? server.sendmail(from_addr, [to_addr], msg.as_string())

? ? server.quit()

執(zhí)行打包腳本

將腳本文件放到你的工程根目錄采记,然后在終端執(zhí)行(Mac已經(jīng)自帶安裝了python環(huán)境佣耐,所以我們不用再安裝python運(yùn)行環(huán)境了):

python autobuild.py

成功之后,我們會(huì)在蒲公英后臺(tái)看到我們剛才上傳的應(yīng)用唧龄。

Test.apk

至此打包完成兼砖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市既棺,隨后出現(xiàn)的幾起案子讽挟,更是在濱河造成了極大的恐慌,老刑警劉巖援制,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戏挡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡晨仑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)拆檬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)洪己,“玉大人,你說(shuō)我怎么就攤上這事竟贯〈鸩叮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵屑那,是天一觀的道長(zhǎng)拱镐。 經(jīng)常有香客問(wèn)我艘款,道長(zhǎng),這世上最難降的妖魔是什么沃琅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任哗咆,我火速辦了婚禮,結(jié)果婚禮上益眉,老公的妹妹穿的比我還像新娘晌柬。我一直安慰自己,他們只是感情好郭脂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布年碘。 她就那樣靜靜地躺著,像睡著了一般展鸡。 火紅的嫁衣襯著肌膚如雪屿衅。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天莹弊,我揣著相機(jī)與錄音涤久,去河邊找鬼。 笑死箱硕,一個(gè)胖子當(dāng)著我的面吹牛拴竹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剧罩,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼栓拜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了惠昔?” 一聲冷哼從身側(cè)響起幕与,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎镇防,沒(méi)想到半個(gè)月后啦鸣,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡来氧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年诫给,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片啦扬。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡中狂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扑毡,到底是詐尸還是另有隱情胃榕,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布瞄摊,位于F島的核電站勋又,受9級(jí)特大地震影響苦掘,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜楔壤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一鹤啡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挺邀,春花似錦揉忘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至禾蚕,卻和暖如春您朽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背换淆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工哗总, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倍试。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓讯屈,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親县习。 傳聞我的和親對(duì)象是個(gè)殘疾皇子涮母,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353