鍍金池/ 教程/ Android/ 針對(duì)Jenkins的谷歌商店安卓出版插件
原文鏈接
Issue #185
Issue #181
Issue #161
Issue #192
Issue #174
Issue #190
RecyclerView FastScroll – Part 2
僅作為Android 調(diào)試模式工具的Stetho
Issue #150
Issue #167
Issue #180
Issue #151
Issue #188
Issue #159
Issue #189
Issue #160
Issue #168
Issue #146
Issue #173
Issue #198
Issue #179
延期的共享元素轉(zhuǎn)換(3b)
Yahnac:RxJava Firebase&內(nèi)容提供
Issue #162
游戲性能:規(guī)劃限定條件
分析清單:測(cè)量和尋找哪些方面
Issue #148
Issue #166
Issue #158
Issue #178
Issue #193
Issue #145
Issue #170
Issue #169
Issue #196
Issue #186
Issue #172
Issue #171
附加Android工件和Gradle的檔案
Issue #147
自定義顏色范圍
根據(jù) Material 設(shè)計(jì)導(dǎo)航制圖工具樣式
Issue #187
Issue #184
Issue #175
在Android Lollipop上使用JobScheduler API
Android性能案例追蹤研究
使用安卓Wear API創(chuàng)建watchface—第2部分
在谷歌市場(chǎng)上創(chuàng)造更好的用戶體驗(yàn)
映射與包的神秘關(guān)系
Issue #165
用Robolectric進(jìn)行參數(shù)化測(cè)試
Issue #155
Issue #149
MVC / MVP中的M -模型
歡迎為 Android 和 iOS 嵌入 API
Issue #164
Android UI 自動(dòng)化測(cè)試
Issue #182
Issue #191
Issue #183
Issue #163
Issue #157
響應(yīng)式編程(Reactive Programming)介紹
Issue #197
原文鏈接
Issue #153
Issue #152
Issue #176
原文地址
Android Material 支持庫:Electric Boogaloo的提示與技巧
Issue #156
Issue #154
Android的模糊視圖
Issue #194
Issue #177
Issue #195
針對(duì)Jenkins的谷歌商店安卓出版插件

針對(duì)Jenkins的谷歌商店安卓出版插件

優(yōu)點(diǎn)

  • 上傳APK文件到Google Play

    • 這包括使用多個(gè)APK支持的應(yīng)用程序
  • 上傳APK擴(kuò)展(.obb)文件

    • 從現(xiàn)有的應(yīng)用程序中選擇與使用擴(kuò)展文件,例如補(bǔ)丁發(fā)布
  • 安排應(yīng)用程序的alpha、beta或產(chǎn)品發(fā)布

    • 這包括將現(xiàn)有的應(yīng)用程序移動(dòng)到不同軌道的構(gòu)建步驟

    • 例如,你可以在一份工作上傳一個(gè)alpha,然后后來又另一個(gè)工作推動(dòng)它到beta
  • 生產(chǎn)應(yīng)用程序的分級(jí)部署

  • 為各種語言分發(fā)發(fā)布說明到上傳的文件

  • 如果由于某些原因配置不好,或上傳應(yīng)用程序失敗,改變構(gòu)建結(jié)果

  • 每一個(gè)配置段都支持變量擴(kuò)展,允許動(dòng)態(tài)生成的發(fā)布說明

  • 結(jié)合Google OAuth Plugin,所以憑證可以一次性地進(jìn)入全局和工作之間的共享

    • 很多Google Play賬號(hào)也是通過這一機(jī)制支持

計(jì)劃即將到來的特點(diǎn)

  • 為應(yīng)用程序上傳截圖和文本

需要

Jenkins

版本1.565.1或以上。

Google Play發(fā)布賬號(hào)

僅為了初始設(shè)置,你必須能夠登入擁有Google Play發(fā)布賬號(hào)的谷歌帳戶。

注意:僅有管理員權(quán)限是不夠的;你必須是帳戶的所有者。

你可以在Google Play開發(fā)者控制臺(tái)是通過 Settings → User accounts & rights查看帳戶的所有者是誰。

請(qǐng)注意

  • 任何上傳的APK將由Google Play立即發(fā)布;它們不會(huì)處在遴選或掛起狀態(tài)

  • 上傳的應(yīng)用程序必須已經(jīng)在Google Play中存在;你不能使用API上傳新的應(yīng)用程序

  • 盡管你只是上傳alpha 或 beta版本的應(yīng)用程序,你仍然需要為Jenkins提供 Manage Production APKs 許可

    • Google Play API團(tuán)隊(duì)具有“指出這種型號(hào)(2014年8月)和仍在研究最安全和最有效的方式以解決使用API接入問題”(自2015年4月開始)

啟動(dòng)

以前的:設(shè)立Google Play憑據(jù)

下面的這個(gè)視頻顯示了初始安裝過程: https://www.youtube.com/watch?v=txdPSJF94RM

安裝插件

通過Jenkins插件管理器安裝這個(gè)插件。

如果進(jìn)行手動(dòng)安裝,確保 Google OAuth Plugin及其依賴項(xiàng)已經(jīng)安裝。

創(chuàng)建谷歌服務(wù)帳戶

為了使自動(dòng)訪問你的Google Play帳戶,你必須創(chuàng)建一個(gè)服務(wù)帳戶:

1、作為所有者登錄到Google Play開發(fā)者控制臺(tái)

2、選擇設(shè)置→API訪問

3、點(diǎn)擊“創(chuàng)建新的項(xiàng)目”

4、建立新項(xiàng)目后,點(diǎn)擊“創(chuàng)建服務(wù)帳戶”

5、鏈接到谷歌開發(fā)者控制臺(tái)

6、創(chuàng)建一個(gè)新的OAuth客戶端ID

7、選擇服務(wù)帳戶類型

8、要注意到一個(gè).p12文件已經(jīng)下載,可能會(huì)命名為“Google Play Android Developer-xxxxxxxxxxxx.p12”

9、復(fù)制創(chuàng)建服務(wù)帳戶的電子郵件地址

服務(wù)帳戶權(quán)限分配

1、返回Google Play開發(fā)者控制臺(tái)頁面

2、在對(duì)話框上點(diǎn)擊 “完成”

3、請(qǐng)注意,服務(wù)帳戶與Google Play發(fā)行帳戶關(guān)聯(lián)

4、單擊帳戶的“授予訪問權(quán)限”按鈕

5、至少確保下列權(quán)限啟用:

  • 編輯存儲(chǔ)列表、定價(jià)和分銷

  • 管理制作的APK

  • 管理Alpha和Beta APK

  • 管理Alpha 和Beta用戶

6、點(diǎn)擊“添加用戶”

7、現(xiàn)在你可以登錄Google Play發(fā)行帳戶了

添加服務(wù)賬號(hào)到Jenkins:

1、導(dǎo)航到你的Jenkins實(shí)例

2、從Jenkins的側(cè)邊欄選擇“證書”

3、選擇一個(gè)證書域并點(diǎn)擊“添加證書”

4、從“類”下拉列表,選擇“谷歌服務(wù)帳戶密鑰”

5、輸入證書名稱——實(shí)際值是不重要的

6、選擇“P12密鑰”類型

7、上傳由谷歌開發(fā)者控制臺(tái)下載的.p12文件

8、點(diǎn)擊“OK”創(chuàng)建證書

為了將應(yīng)用程序發(fā)布到Google Play,Jenkins需要證書和權(quán)限。

Per-job config

上傳一個(gè)APK

以下設(shè)置過程在這個(gè)視頻中演示:https://www.youtube.com/watch?v=iu-bLY9-jkc

1、創(chuàng)建一個(gè)新的自由形式的軟件項(xiàng)目

2、通過你的需求建立步驟,確保你想上傳的這個(gè)APK在建立的工作空間是可用的

3、編譯后添加“上傳的Android APK到Google Play”

4、從下拉列表中選擇證書名稱

  • 證書必須屬于擁有應(yīng)用程序上傳權(quán)限的Google Play賬戶
  • 5、輸入路徑和/或通配符指向上傳的APK或多個(gè)APK

  • 這可能是一個(gè)Ant式的*/-release.apk,或者一個(gè)相對(duì)于工作空間根的逗號(hào)分隔的文件名列表

6、選擇跟蹤到應(yīng)當(dāng)配置的APK

  • 如果你使用Jenkins配置作品的發(fā)布,你可以選擇推出的百分比

7、選擇“添加語言”到將發(fā)布的說明以及上傳的APK

  • 你可以根據(jù)需要添加或多或少的你支持的語言,但是每一種語言都必須已經(jīng)添加到你的應(yīng)用程序中,位于Google Play開發(fā)者控制臺(tái)的“商店列表”下。

APK擴(kuò)展文件

你可以選擇為上傳的每個(gè)APK增加兩個(gè)擴(kuò)展文件。

擴(kuò)展文件列表可以以與的應(yīng)用程序相同的方式指定,但注意,它們必須以[main|patch]...obb.格式命名。你可以從在線幫助獲取更多細(xì)節(jié)。

移動(dòng)現(xiàn)有的APK到另一個(gè)版本的軌道

如果你已經(jīng)上傳一個(gè)應(yīng)用程序到alpha軌道(例如),你可以在以后使用Jenkins重新分配該版本為beta版或產(chǎn)品發(fā)布軌道。

根據(jù)工作配置的“構(gòu)建”章節(jié),增加了“移動(dòng)AndroidAPK到不同發(fā)布軌道”的設(shè)置步驟,和配置新的發(fā)布軌道。

你可以通過告訴Jenkins 哪一個(gè)APK需要移動(dòng)或直接輸入APK版本代碼,或通過提供APK文件,該插件會(huì)為你讀取申請(qǐng)ID和版本代碼。

想要的反饋

如果你是擴(kuò)展文件的用戶,特別是如果你使用多個(gè)APK情況下,這將有助于了解你如何正常地使用擴(kuò)展文件,且無論什么樣的插件都提供了足夠的信息。 你通常會(huì)為每個(gè)應(yīng)用程序的擴(kuò)展做獨(dú)立的主/補(bǔ)丁文件嗎?或者它是更常見的所有APK共享相同的擴(kuò)展文件嗎?

目前來說,當(dāng)試圖從現(xiàn)有的應(yīng)用程序中重新利用擴(kuò)展文件時(shí)(沒有明確地指定那些來自于舊APK的擴(kuò)展文件需要與新上傳的APK一同重新使用),前者的情況下是不合適的。

通過在頁面頂部的電子郵件告訴我們!

疑難解答

來自于插件的錯(cuò)誤信息(其中許多都直接來自于Google Play API)應(yīng)當(dāng)一目了然。

如果你獲得特定配置工作中遇到了麻煩,請(qǐng)嘗試手動(dòng)上傳相同的APK到Google Play。這樣你可能就會(huì)看到失敗的原因,例如版本代碼沖突或類似。

或者,請(qǐng)給我們發(fā)送錯(cuò)誤報(bào)告或包含有相信信息的郵件,包括構(gòu)建控制臺(tái)日志輸出;在頁面頂部的信息框內(nèi)查看我們的聯(lián)系信息。

常見問題

如果我想上傳多個(gè)、不同應(yīng)用ID的APK程序(即構(gòu)建風(fēng)格),該怎么辦?

使用Android Gradle構(gòu)建系統(tǒng)的構(gòu)建風(fēng)格特點(diǎn),它可能是有一個(gè)單一Android構(gòu)建產(chǎn)生多個(gè)APK,每一個(gè)APK有一個(gè)不同的應(yīng)用ID。

例如,你可以有應(yīng)用程序ID“com.example.app”和“com.example.app.pro”分別為免費(fèi)和付費(fèi)版本。

這些往往是建立在一個(gè)單一的Jenkins的工作中,有人想知道為什么這個(gè)插件將拒絕上傳的在一個(gè)單一的工作中具有不同應(yīng)用ID的APK。

然而,就Google Play所考慮的方面而言,這些都是完全獨(dú)立的應(yīng)用程序。這是正確的,因此應(yīng)該在單獨(dú)的Jenkins構(gòu)建(每一個(gè)應(yīng)用ID)上傳。

如果您想嘗試在一個(gè)Jenkins構(gòu)建中上傳完全不同的APK(比如三個(gè)),這就需要用Google Play API開放和提交三個(gè)獨(dú)立的“編輯會(huì)話”。如果其中任何一個(gè)失敗——也許是因?yàn)橐粋€(gè)無效的APK,或由于一個(gè)API失?。ú恍业氖?,使用Google Play API過程中這種情況并不少見)——你將使你的Google Play帳戶處于不一致的狀態(tài)而結(jié)束。您的構(gòu)建將被標(biāo)記為失敗,但有一個(gè)或多個(gè)應(yīng)用程序?qū)嶋H上已經(jīng)上傳并發(fā)布到Google Play,所以你就必須手動(dòng)修復(fù)這種情況。此外,你將不能僅進(jìn)行重新運(yùn)行構(gòu)建,因?yàn)檫@將由于已經(jīng)存在的APK而失敗。

在這種情況下的最佳方法是有一項(xiàng)工作構(gòu)建不同的風(fēng)格(即APK使用不同的應(yīng)用程序ID),然后,如果構(gòu)建成功,這將存檔的APK和啟動(dòng)多個(gè)“下游”Jenkins構(gòu)建,這將單獨(dú)發(fā)布的每個(gè)應(yīng)用程序。

即“上傳”的工作可能是通用的,可以通過參數(shù)接收APK的信息。

待辦事項(xiàng): 提供更多關(guān)于如何設(shè)置的信息。