android多渠道打包-jenkins搭建與構(gòu)建

最近項(xiàng)目中要實(shí)現(xiàn)一個需求鸿脓,打出不同資源文件的安裝包抑钟,之前有過項(xiàng)目經(jīng)驗(yàn),但是是通過前端大佬編寫linux腳本來實(shí)現(xiàn)資源替換野哭,現(xiàn)在采用jenkins來實(shí)現(xiàn)在塔,jenkins通過實(shí)現(xiàn)gradle腳本動態(tài)實(shí)現(xiàn)多渠道資源文件的可視化界面選擇功能拨黔,最終打出多個渠道不同資源文件的安裝包蛔溃,閑言少敘,進(jìn)入正篇篱蝇。

jenkins的安裝:

1.我這里采用的是.msi文件進(jìn)行服務(wù)搭建贺待,.msi安裝成功后,需要在后臺啟動服務(wù)零截;(通過localhost:8080瀏覽器進(jìn)行訪問)


2.然后進(jìn)行插件更新狠持,這個需要很久,樓主都是更新了好長時間瞻润,各種失敗,小伙伴們不要擔(dān)心,就算失敗绍撞,最終進(jìn)去還是可以更新的正勒,更新完了我們就可以申請賬號,進(jìn)行項(xiàng)目的構(gòu)建了傻铣;


章贞、

3.在workspace(工作空間下創(chuàng)建自己的項(xiàng)目),然后就可以配置多渠道打包的構(gòu)建環(huán)境了非洲,看看我的配置屬性:

注意:如果如果要選擇打多個渠道的包鸭限,賦值為空;


在app目錄下創(chuàng)建多渠道打包的文件家两踏,以及文件夾下面防止動態(tài)替換的資源文件败京,如下:

4.最后就可以進(jìn)行項(xiàng)目可視化構(gòu)建了


5.再來看看項(xiàng)目結(jié)構(gòu)與配置 簽名文件配置、多渠道資源文件配置梦染、自定義輸出app名字與目錄:

注意:渠道的名字一定要與app目錄下文件的名字一致赡麦,要么無法找到;

apply plugin: 'com.android.application'

android {

? ? compileSdkVersion rootProject.ext.compileSdkVersion

? ? buildToolsVersion rootProject.ext.buildToolsVersion

aaptOptions.cruncherEnabled = false

? ? aaptOptions.useNewCruncher = false

? ? dataBinding {

? ? ? ? enabled = true

? ? }

signingConfigs {//簽名的配置

? release {

? storeFile file("F:/OA-HLW/xxx.jks")

? storePassword '123456'

? keyAlias 'key0'

? keyPassword '123456'

? v1SigningEnabled true

? }

? }

? productFlavors {//多渠道配置 包名帕识、版本號泛粹、版本名、manifest文件中icon與app名字配置肮疗;

? ? ? ? hbws {

? ? ? ? ? ? applicationId "com.tjhq.oa.hbws"

? ? ? ? ? ? versionCode 1

? ? ? ? ? ? versionName "1.0"

manifestPlaceholders = [MTA_CHANNEL_VALUE: "hbws",app_icon: "@mipmap/oa_icon",app_name: "@string/app_name"]

? ? ? ? }

? ? ? ? fjoa {

? ? ? ? ? applicationId "com.tjhq.oa.fjoa"

? ? ? ? ? ? versionCode 1

? ? ? ? ? ? versionName "1.0"

manifestPlaceholders = [MTA_CHANNEL_VALUE: "fjoa",app_icon: "@mipmap/oa_icon",app_name: "@string/app_name"]

? ? ? ? }

hblcj {

? ? ? ? ? applicationId "com.tjhq.oa.hblcj"

? ? ? ? ? ? versionCode 1

? ? ? ? ? ? versionName "1.0"

manifestPlaceholders = [MTA_CHANNEL_VALUE: "hblcj",app_icon: "@mipmap/oa_icon",app_name: "@string/app_name"]

? ? ? ? }

? ? }

? ? defaultConfig {

? ? ? ? applicationId "com.tihq.oa"

? ? ? ? minSdkVersion rootProject.ext.minSdkVersion

? ? ? ? targetSdkVersion rootProject.ext.targetSdkVersion

? ? ? ? versionCode? APP_CODE as int

? ? ? ? versionName? APP_VERSION

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

? ? ? ? multiDexEnabled true //分包配置

flavorDimensions "default"

? ? }

? ? buildTypes {

? ? ? ? release {

? ? ? ? ? ? minifyEnabled false

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

signingConfig signingConfigs.release //自定義apk的輸出目錄

applicationVariants.all { variant ->

? ? ? ? ? ? variant.outputs.all {

variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath +File.separator+"app"+File.separator + "outputs"+File.separator+"apk")

? ? ? ? ? ? outputFileName = "${variant.productFlavors[0].name}_" +

? ? ? ? ? ? ? ? "${this.android.defaultConfig.versionName}_" +

? ? ? ? ? ? ? ? "${releaseTime()}.apk"

? ? ? ? }

? ? }

}

}

}

def releaseTime() {? ? return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))}

動態(tài)配置manifest中icon晶姊、app名字、進(jìn)行文件讀寫作者權(quán)限設(shè)置伪货;

<application

? ? ? ? android:name="com.tjhq.basemodel.application.BaseApplication"

? ? ? ? android:allowBackup="true"

? ? ? ? android:icon="${app_icon}"

? ? ? ? android:label="${app_name}"

? ? ? ? android:supportsRtl="true"

? ? ? ? android:theme="@style/ActivityTheme">

<provider

? ? ? ? ? ? android:name="android.support.v4.content.FileProvider"

? ? ? ? ? android:authorities="${applicationId}.fileprovider"

? ? ? ? ? ? android:exported="false"

? ? ? ? ? ? android:grantUriPermissions="true">

? ? ? ? ? ? <meta-data

? ? ? ? ? ? ? ? android:name="android.support.FILE_PROVIDER_PATHS"

? ? ? ? ? ? ? ? android:resource="@xml/file_paths" />

? ? ? ? </provider>

補(bǔ)充:這里需要配置java的jdk環(huán)境们衙、android的sdk環(huán)境,gradle編譯的環(huán)境超歌,這里沒有進(jìn)行詳細(xì)描述砍艾,最后小伙伴也可以拿到j(luò)enkins的構(gòu)建腳本,進(jìn)行后臺多渠道一鍵打包功能巍举,

D:\gradle-4.4\bin>call gradle.bat -PPRODUCT_FLAVORS=hbws -PAPP_CODE=1 -PBUILD_TYPE=Release -PAPP_VERSION=1.0 assemblehbwsRelease -b "D:\Program Files (x86)\Jenkins\workspace\XTBG_OA\trunk\app\build.gradle"脆荷。

?動態(tài)替換掉其中資源文件以及編輯的哪個渠道文件,有好的建議或者方法的大神希望留言懊悯,寫的不夠完整蜓谋,望多多見諒。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炭分,一起剝皮案震驚了整個濱河市桃焕,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捧毛,老刑警劉巖观堂,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件让网,死亡現(xiàn)場離奇詭異,居然都是意外死亡师痕,警方通過查閱死者的電腦和手機(jī)溃睹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胰坟,“玉大人因篇,你說我怎么就攤上這事”屎幔” “怎么了竞滓?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吹缔。 經(jīng)常有香客問我商佑,道長,這世上最難降的妖魔是什么涛菠? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任莉御,我火速辦了婚禮,結(jié)果婚禮上俗冻,老公的妹妹穿的比我還像新娘礁叔。我一直安慰自己,他們只是感情好迄薄,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布琅关。 她就那樣靜靜地躺著,像睡著了一般讥蔽。 火紅的嫁衣襯著肌膚如雪涣易。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天冶伞,我揣著相機(jī)與錄音新症,去河邊找鬼。 笑死响禽,一個胖子當(dāng)著我的面吹牛徒爹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播芋类,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼隆嗅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了侯繁?” 一聲冷哼從身側(cè)響起胖喳,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎贮竟,沒想到半個月后丽焊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體较剃,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年粹懒,在試婚紗的時候發(fā)現(xiàn)自己被綠了重付。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡凫乖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弓颈,到底是詐尸還是另有隱情帽芽,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布翔冀,位于F島的核電站导街,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏纤子。R本人自食惡果不足惜搬瑰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望控硼。 院中可真熱鬧泽论,春花似錦、人聲如沸卡乾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幔妨。三九已至鹦赎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間误堡,已是汗流浹背古话。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工少态, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留悯姊,地道東北人炒俱。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓恐疲,卻偏偏與公主長得像炮温,于是被迫代替她去往敵國和親闭树。 傳聞我的和親對象是個殘疾皇子精堕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容