2017-06-02 38 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