亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Jenkins打包android應用時自動簽名apk詳解

 更新時間:2019年07月16日 09:45:16   作者:coderstory  
這篇文章主要介紹了Jenkins打包android應用時自動簽名apk詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前言

如果你是使用android studio編譯項目的化,在編譯apk只會會自動給apk簽名。

但默認配置下jenkins下編譯出的apk是unsign的。需要一些額外的設置才能自動sign。

這個功能需要我們修改下build.gradle配置文件,讓gradle在編譯之后執(zhí)行簽名。

當然你也可以在這里做一些其他的修改,比如修改編譯出的apk的名字,讓他加個當前時間的時間戳,編譯類型的后綴什么的,方便識別。

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段下添加一行 表示調用上面的簽名配置

注意修改apk的名字后在android studio是無法開啟調試模式,提示找不到apk

signingConfig signingConfigs.release

效果圖

第一個是debug版本

第二個是沒簽名的release版本

第三個是簽名后還改了名字的release版本

如果想編譯某個版本的話 需要修改下執(zhí)行gradle的命令行參數(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")) //年月日時分秒
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Android 屏幕切換監(jiān)聽的實例代碼

    Android 屏幕切換監(jiān)聽的實例代碼

    我試著在屏幕切換時,使View顯示在不同的位置,在網上搜索了一些資料,自己做了一段時間,終于完成了功能,今天小編給大家分享android 屏幕切換監(jiān)聽的實例代碼,需要的的朋友參考下吧
    2017-01-01
  • Android 4.4以上

    Android 4.4以上"沉浸式"狀態(tài)欄效果的實現(xiàn)方法

    Android與ios效果互仿早已不是什么稀奇的事,我猜大概這個效果來自ios吧,有爭議說這種效果不能叫做沉浸式,叫透明狀態(tài)欄更合適,我也感覺這和沉浸式的含義不太一致。但是大家都這么叫了,那就這樣唄。下面來一起看看關于Android 4.4以上"沉浸式"效果的實現(xiàn)方法。
    2016-09-09
  • android應用簽名詳細步驟

    android應用簽名詳細步驟

    這篇文章主要介紹了android應用簽名詳細步驟,需要的朋友可以參考下
    2014-02-02
  • Android ListView實現(xiàn)仿iPhone實現(xiàn)左滑刪除按鈕的簡單實例

    Android ListView實現(xiàn)仿iPhone實現(xiàn)左滑刪除按鈕的簡單實例

    下面小編就為大家?guī)硪黄狝ndroid ListView實現(xiàn)仿iPhone實現(xiàn)左滑刪除按鈕的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • 淺析Android Dialog中setContentView()方法

    淺析Android Dialog中setContentView()方法

    本篇文章主要介紹了Android Dialog中setContentView()方法的相關知識。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-05-05
  • Android uses-permission權限列表中文注釋版

    Android uses-permission權限列表中文注釋版

    Android有一個精心設計的安全模型。每一個應用都有其自己Linux用戶和群組,在單獨的進程和VM上運行,不能影響到其他應用
    2014-05-05
  • Android 超詳細深刨Activity Result API的使用

    Android 超詳細深刨Activity Result API的使用

    這篇文章主要介紹了Android開發(fā)中Activity Result API的使用,掌握了它以后你就可以放棄startActivityForResult了,感興趣的朋友一起來看看吧
    2022-03-03
  • Android Studio中debug功能詳解

    Android Studio中debug功能詳解

    這篇文章主要為大家詳細介紹了Android Studio中debug功能的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • android打開應用所在的市場頁面進行評分操作的方法

    android打開應用所在的市場頁面進行評分操作的方法

    這篇文章主要介紹了android打開應用所在的市場頁面進行評分操作的方法,涉及Android操作市場頁面評分效果的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • Android編程實現(xiàn)夜間模式的方法小結

    Android編程實現(xiàn)夜間模式的方法小結

    這篇文章主要介紹了Android編程實現(xiàn)夜間模式的方法,涉及Android亮度調節(jié)、自定義Theme、遮罩模式等相關使用技巧,需要的朋友可以參考下
    2018-01-01

最新評論