Jenkins中怎么打包android應(yīng)用,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
10年積累的網(wǎng)站設(shè)計制作、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有平遙免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
1.生成的apk名加上當前時間 + 修改apk的發(fā)布路徑
在build.gradle配置文件下的android配置段下的buildTypes下找到你的編譯配置項一般就是release
在release段下面加上如下代碼
applicationVariants.all { variant -> if (variant.buildType.name.equals('release')) { //如果是release版本 variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { //查找所有的apk def fileName = "${releaseTime()}_XXXXPorject_${defaultConfig.versionName}.apk" //重新定義apk的名稱 output.outputFile = new File(outputFile.parent, fileName) //outputFile.parent參數(shù)可以改成你你想要的發(fā)布路徑 } } } }
然后在build.gradle配置文件的末尾加上一個方法用來獲取當前時間
def releaseTime() { // return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC")) //年月日 return new Date().format("yyyyMMdd HH-mm-ss", TimeZone.getTimeZone("GMT+8:00")) //年月日時分秒 }
2.實現(xiàn)自動化簽名 別忘了jks文件也要放項目里
build.gradle的android段添加如下配置段 定義簽名key
signingConfigs {//簽名的配置 release { storeFile file("簽名.jks") storePassword '密碼' keyAlias '別名' keyPassword '密碼' } }
在android配置段下的buildTypes段的release段下添加一行 表示調(diào)用上面的簽名配置
注意修改apk的名字后在android studio是無法開啟調(diào)試模式,提示找不到apk
signingConfig signingConfigs.release
效果圖
第一個是debug版本
第二個是沒簽名的release版本
第三個是簽名后還改了名字的release版本
如果想編譯某個版本的話 需要修改下執(zhí)行g(shù)radle的命令行參數(shù)
參考例子
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion '24.0.3' defaultConfig { applicationId "com.coderstory.Purify" minSdkVersion 19 targetSdkVersion 25 versionCode 90 versionName "1.5.0" resConfigs "cn" } repositories { mavenCentral() } signingConfigs {//簽名的配置 release { storeFile file("mykey.jks") storePassword 'a1234' keyAlias 'coolapk' keyPassword 'b1234' } } buildTypes { release { shrinkResources true minifyEnabled true signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' applicationVariants.all { variant -> if (variant.buildType.name.equals('release')) { //如果是release版本 variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { //查找所有的apk def fileName = "MIUI Purify_${releaseTime()}_${defaultConfig.versionName}.apk" //重新定義apk的名稱 output.outputFile = new File(outputFile.parent, fileName) //outputFile.parent參數(shù)可以改成你你想要的發(fā)布路徑 } } } } } } productFlavors { } lintOptions { abortOnError false } } dependencies { provided fileTree(include: ['*.jar'], dir: 'libs') compile project(':library') compile project(':pull') compile 'com.android.support:support-v4:25.0.1' compile 'com.android.support:appcompat-v7:25.0.1' compile 'com.android.support:design:25.0.1' testCompile 'junit:junit:4.12' provided 'de.robv.android.xposed:api:82' } def releaseTime() { // return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC")) //年月日 return new Date().format("yyyyMMdd HH-mm-ss", TimeZone.getTimeZone("GMT+8:00")) //年月日時分秒 }
看完上述內(nèi)容,你們掌握Jenkins中怎么打包android應(yīng)用的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
文章標題:Jenkins中怎么打包android應(yīng)用
轉(zhuǎn)載注明:http://jinyejixie.com/article12/pdccdc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、服務(wù)器托管、手機網(wǎng)站建設(shè)、虛擬主機、網(wǎng)站導航、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)