1.gradle與gradlew的選擇
配置project,我們選擇gradle進行打包。會看到如下圖配置項。然而很多網上教程中給出的選擇是第一項。只能這么說,如果你是新建一個androidDemo,這樣設置完全沒問題。
但是一個真實的項目,這樣恐怕就要出問題。也許見識的比較少,不知道猜測對不對,團隊合作,每個人的環境不一致,可能導致Build失敗,於是使用的項目使用的是gradle wrapper。如果我們這里配置invoke gradle,就會報錯。(報什么錯呢,等我去修改下配置,給圖給各位看,已經截圖了)
當初看到這個錯,搞了很久,怎么都不行,后來反復看了一位前輩的文章(找不到出處了),覺得有可能是因為選錯了,於是嘗試使用 use gradle wrapper。可以自行下載相應的包,也可以自動下載,需要的版本在android項目文件中應該有寫,不知道的話請聯系項目研發,如果是你自己寫的項目,找不到,那我也無話可說了。
配置完,點擊構建,解決,Build成功。
2.打包成功,但是打出來的release包標記了unsigned.
嘛意思呢,就是沒有簽名。沒有簽名意味着,無法安裝,無法發布。於是找研發問了,簽名如何實現的。研發也是很熱心,過來點點點,輸入密碼各種key,然后打包完了。
然並卵,我總不可能讓Jenkins也點點點啊。。。於是研究如何代碼中如何實現的簽名的,android studio是如何實現簽名的。無數次的麻煩研發,看代碼之后,終於發現android studio與jenkins想要實現上完全不一樣。android studio打包會去選擇簽名文件以及輸入各種信息,然而我們jenkins想要自動化打包,則必須將所需信息寫在配置文件里面。下面是代碼截圖
buildTypes中的sigingConfig signingConfigs.signingConfig 就是調用上面的配置文件。作為測試搞不定這個代碼,就找研發吧。(就算搞定,沒有權限提交,也請找研發)
配置完成之后再構建打包,應該就能解決簽名不成功的問題了(自己找到的解決辦法,找研發改的代碼之后解決了問題,作為一名測試,還是很有成就感)
3.打完包去哪兒了呢?
好吧,這個問題其實是自己對jenkins不熟悉造成的。如果是androidstudio打包,會到項目主目錄下,但是如果是jenkins就不是了。會在project輸出目錄中去…/outputs中,或者如果代碼中指定了輸出目錄,就是指定輸出目錄,為了減少自己的麻煩,我都是默認。