首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jenkins生成签名的应用包?

如何使用jenkins生成签名的应用包?
EN

Stack Overflow用户
提问于 2020-04-08 12:50:06
回答 1查看 206关注 0票数 1

使用jenkins,我能够为我的应用程序生成一个发布应用程序包,但我被困在下一步,这涉及到为我的应用程序生成一个签名的应用程序包,以便我可以在playstore上更新我的构建。那么,有没有插件或其他方式可以让我在jenkins上为我的应用程序生成签名的应用程序包呢?

EN

回答 1

Stack Overflow用户

发布于 2021-07-19 18:51:02

这可以通过以下方式完成:

  1. 配置安卓应用程序的build.gradle文件,以便在Jenkins作业(秘密文件、秘密文本...)中将签名密钥、别名和密码作为凭证时,从环境变量中提取签名信息。通过Jenkins UI。
  2. 使用凭据绑定插件从Jenkins文件中的凭据设置环境变量,从而将它们传递给build.gradle。

build.gradle中提取

代码语言:javascript
复制
apply plugin: 'com.android.application'

def myStoreFile = System.getenv('MY_STORE_FILE')
def myStorePassword = System.getenv('MY_STORE_PASSWORD')
def myKeyAlias = System.getenv('MY_KEY_ALIAS')
def myKeyPassword = System.getenv('MY_KEY_PASSWORD')

android {
     ...
     
     signingConfigs {
         release {
            if (myStoreFile) {
                storeFile rootProject.file(myStoreFile)
                storePassword myStorePassword
                keyAlias myKeyAlias
                keyPassword myKeyPassword
            }
         }
     }
     buildTypes {
         release {
            ...
     
            if (myStoreFile && myStorePassword && myKeyAlias && myKeyPassword) {
                 signingConfig signingConfigs.release
            }
         }
     
     }
     ...
}

从Jenkinsfile中提取:

代码语言:javascript
复制
stage ('Build and Sign Android Bundle') {
  ...
 
  steps {
    // Signing parameters are configured in Jenkins (here we use secret file, secret text and username with password respectively)
    // and are passed to the build.gradle file using the environment variables (MY_STORE_FILE, MY_KEY_ALIAS etc)
    withCredentials([file(credentialsId: 'android-store-file', variable: 'MY_STORE_FILE'),
                     string(credentialsId: 'android-store-password', variable: 'MY_STORE_PASSWORD'),
                     usernamePassword(credentialsId: 'android-key', usernameVariable: 'MY_KEY_ALIAS', passwordVariable: 'MY_KEY_PASSWORD')]) {
    
      dir ('android-app-root-directory') {        
        sh 'gradle clean bundleRelease'
      }
    }
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61093519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档