遷移舊有簽名至 Google Play 應用程式簽署

使用 App Bundle 前的必要設定

Jui Yuan Liou
5 min readNov 28, 2018
WATCH THIS!!

2017 年 Google 推出了 Google Play 應用程式簽署,讓開發者可以將自己的 key 上傳至 Google Play Console,交由 Google 保管。另外還能產生一組專門用來上傳新的 APK/App Bundle 的 upload key,如果不小心把這組 upload key 弄丟,還能透過 Google Play Console 更換一組新的。
Google Play 應用簽署其中一個好處是 Google Play 會幫忙處理 Multiple APK 的簽名,如果專案需要輸出 Multiple APK 不再需要自己處理各個 APK 的簽名。不過對於大部分的開發者來說,遷移至 Google Play 應用程式簽署的好處,是可以使用 App Bundle

如果你目前建立的是全新專案,Google Play Console 會在建立新專案時提供 Google Play 應用程式簽署的相關教學,基本上透過教學引導即能快速設定好。
通常既有專案中,我們早已使用某一個 keystore 行之有年。而這篇文章著重於如何由現有專案的 key 遷移至 Google Play 應用程式簽署,並且會補上 upload key 設定的步驟,設定一次完整的搬遷步驟。

首先開啟 Google Play Console 頁面,找到左側側邊欄的「版本管理」選項,點擊「應用程式簽署」。

如果你是第一次進到這個頁面,應該會跳出教學頁面。跳選進入內頁,這邊想將目前現有的 key 轉換成使用 Google Play 應用程式簽署,故選擇第二個選項「從 Java 金鑰庫匯出並上傳金鑰」。

先確認自己電腦中是否有安裝 Java 8 或以上的版本,可以透過終端機,並輸入:

$ java -version

來確定電腦中安裝的 Java 版本。確認後,下載 Google Play Console 提供的 PEPK 工具。你可以將終端機的目錄切換至 PEPK 工具與 keystore 檔案所在的資料夾,並鍵入以下指令來建立應用程式簽署金鑰檔案 (副檔名為 pem 的檔案):

$ java -jar pepk.jar --keystore=<your_keystore_file_name>.jks --alias=<your_key_alias> --output=<file_name>.pem --encryptionkey=<your_google_play_hash_string>

請將指令裡頭由 <> 包起來的部分更改成你的設定。
keystore 可以是 jks 或 keystore 副檔名的檔案,output 一定是 pem 檔案。另外, <your_google_play_hash_string> 這個部分可以在自己的 Google Play Console 後台查到,可以參考上方選擇「從 Java 金鑰庫匯出並上傳金鑰」的圖片。上傳這個產生出來的 pem 檔案,即完成上傳加密應用程式簽署金鑰。

另外,還可以再建立另一組專門用來上傳 APK/App Bundle 的 upload key。除了增加一些安全性以外,上面提到如果 upload key 遺失,還能透過 Google Play Console 再建立新的一組。
換句話說,其實就是直接另外再產生一組 keystore,最簡單的方式應該是透過 Android Studio 的圖形介面來製作。可以透過選單的 Build > Generate Signed Bundle/APK 跳出的對話框來新增一組 keystore。

建立好之後,透過應用程式簽署設定頁面最下方的「建立上傳金鑰」選項上傳即可。

別忘了在一些第三方服務 (像是 Google Map,Facebook SDK 之類的) 加入這組金鑰,以方便測試 release build 的 APP。可以在終端機中透過下列的指令取得 upload key 的 Certificate fingerprints SHA1 值:

$ keytool -list -v -keystore <your_upload_keystore>.jks

到此步驟,我們已經完成遷移至 Google Play 應用程式簽署了。 😎

--

--

Responses (1)