2017-06-02 41 views
-1

我有我的密钥库release.keystore在路径/home/ankit/keystores/release.keystore。我想使用别名为example的密钥来签署使用Jenkins构建的应用程序。但是,我无法提供Jenkins中密钥库的地址。下面是截图:如何使用jenkins登录android apk

enter image description here

如可以看出,有一个下拉针对密钥存储标签列表,它有没有项目。我试图关注官方文档,但我没有得到它。

我想我必须将现有的密钥对以某种方式链接到Jenkins,以便它显示在下拉列表中。但我无法想象如何。

+0

*如果你不能帮助我,请限制自己不要点击那个重复/ downvote按钮。* =>你完全误解了,知道答案和评价问题是不好的或是愚蠢的。更多阅读这里[这里](https://meta.stackoverflow.com/questions/252677/when-is-it-j- sistifiable-to-downvote-a-question)。 – 2Dee

+0

请不要在您的帖子中提供投票建议。如果有的话,这本身就是一个downvote磁铁。 – halfer

回答

1

相反,您可以在gradle本身中配置这一切,这将独立于任何CI工作。首先在项目中创建的根build.properties并包括以下内容:

#Key store 
keystore.release=../keys/release.keystore 
keystore.debug=../keys/debug.keystore 
keystore.key.alias=... 
keystore.key.password=... 
keystore.password=... 

现在,在您的应用程序模块build.gradle访问这些道具:

final Properties props = new Properties() 
props.load(new FileInputStream('build.properties')) 
android { 
    signingConfigs { 
     release { 
      keyAlias props['keystore.key.alias'] 
      keyPassword props['keystore.key.password'] 
      storeFile file(props['keystore.release']) 
      storePassword props['keystore.password'] 
     } 
     debug { 
      storeFile file(props['keystore.debug']) 
     } 
    } 

    buildTypes { 
     release { 
      ... 
      signingConfig signingConfigs.release 
     } 

     debug { 
      ... 
      signingConfig signingConfigs.debug 
     } 
    } 
} 

现在确保它在你的本地计算机与./gradlew clean assembleRelease(有如果你在电脑上做其他事情)

之后,提交更改并更新配置项中的gradle构建设置。并确保那些密钥存储在那里。

+0

谢谢!有效。但是,如果密钥库密码和别名未硬编码为gradle文件,则更好。我发现这篇文章也有帮助:https://www.timroes.de/2013/09/22/handling-signing-configs-with-gradle/ –

+0

@AnkitShubham是的,你是对的,你可以从其他地方读取它。 – Milan