如要使用 Play 應用程式簽署功能,您必須是帳戶擁有者,或是有權發布正式版、排除特定裝置及使用這項功能的使用者,且須接受《Play 應用程式簽署服務條款》。
運作方式
使用 Play 應用程式簽署功能時,您的金鑰會存放在 Google 用來儲存自身金鑰的安全基礎架構中,受到 Google 金鑰管理服務的保護。如要進一步瞭解 Google 的基礎架構,請參閱《Google Cloud 安全性白皮書》。
Android 應用程式會以私密金鑰簽署。為了確保應用程式更新值得信任,每組私密金鑰都有相關聯的公用憑證,讓裝置和服務驗證應用程式更新是否來自相同來源。更新檔的簽名必須和安裝版應用程式的簽名相同,裝置才會接受更新。如果讓 Google 來管理您的應用程式簽署金鑰,這個驗證程序會更加安全。
注意:對於在 2021 年 8 月之前建立的應用程式,您還是可以上傳 APK 並自行管理金鑰,既不必使用 Play 應用程式簽署功能,也不必採用 Android App Bundle 格式發布應用程式。但在這種情況下,如果 KeyStore 遺失或遭到盜用,您將無法更新應用程式,必須改用新的套件名稱重新發布應用程式。有鑑於此,Play 會建議開發人員為這些應用程式採用 Play 應用程式簽署功能,並且改用應用程式套件。
設定及管理 Play 應用程式簽署功能
如果您的應用程式尚未使用 Play 應用程式簽署功能,請按照下方說明操作。
步驟 1:建立上傳金鑰
- 按照操作說明建立上傳金鑰。
- 使用上傳金鑰簽署應用程式套件。
步驟 2:備妥版本
- 按照操作說明準備及推出版本。
- 選取測試群組後,「應用程式完整性」部分就會顯示應用程式的 Play 應用程式簽署狀態。
- 如要使用 Google 產生的應用程式簽署金鑰繼續作業,請上傳您的應用程式套件。您也可以選取「變更應用程式簽署金鑰」,然後使用下列選項:
- 使用 Google 產生的應用程式簽署金鑰:超過 90% 新應用程式都使用 Google 產生的應用程式簽署金鑰。使用 Google 產生的金鑰可以避免金鑰遺失或遭到盜用 (金鑰無法下載)。如果選擇這個選項,即可從應用程式套件探索工具下載利用 Google 產生的金鑰所簽署的發行 APK,並在其他管道發行這個 APK;您也可以針對在其他管道發行的 APK 使用不同金鑰。
- 使用其他應用程式簽署金鑰:選擇應用程式簽署金鑰後,您可以將同一組金鑰用於開發人員帳戶中的其他應用程式,或是在本機保留應用程式簽署金鑰的副本,讓相關作業更有彈性。舉例來說,您可能因為某些裝置已預先安裝您的應用程式,所以已經有確定的金鑰。如果將金鑰保留在 Google 伺服器以外的地方,萬一本機副本外洩,就可能增加風險。您可以參考下列選項,瞭解如何使用其他金鑰:
- 使用與這個開發人員帳戶中的其他應用程式相同的應用程式簽署金鑰
- 從 Java KeyStore 匯出並上傳金鑰
- 匯出並上傳金鑰 (不使用 Java KeyStore)
- 選擇不採用 Play 應用程式簽署功能 (除非您打算升級應用程式簽署金鑰以註冊使用 Play 應用程式簽署功能,否則請勿這麼做)。
- 依照其餘指示進行準備作業及推出版本。
注意:您必須接受《服務條款》並選擇加入應用程式簽署計畫,才能繼續操作。
步驟 3:向 API 供應商註冊您的應用程式簽署金鑰
如果您的應用程式使用了任何 API,您通常需要為 API 註冊應用程式簽署金鑰,以便使用憑證指紋進行驗證。尋找憑證的方法如下:
- 開啟 Play 管理中心,然後前往「Play 應用程式簽署」頁面 (依序點選「測試及發布 」>「設定」>「應用程式簽署」)。
- 捲動至「應用程式簽署金鑰憑證」部分,然後複製您應用程式簽署憑證的指紋 (MD5、SHA-1 及 SHA-256)。
- 如果 API 供應商需要不同類型的指紋,您也可以下載
.der
格式的原始憑證,然後使用 API 供應商要求的轉換工具來轉換這個憑證的格式。
- 如果 API 供應商需要不同類型的指紋,您也可以下載
建立上傳金鑰及更新 KeyStore
為了提升安全性,建議您使用新的上傳金鑰來簽署應用程式,不要使用應用程式簽署金鑰。
您可以在選擇採用 Play 應用程式簽署功能時建立上傳金鑰,或是日後再前往「Play 應用程式簽署」頁面 (依序點選「測試及發布 」>「設定」>「應用程式簽署」) 建立上傳金鑰。
建立上傳金鑰的方法如下:
- 按照 Android 開發人員網站的說明操作,將您的金鑰存放在安全的地方。
- 為新的上傳金鑰匯出憑證 (PEM 格式)。接著,替換下列以底線標示的引數:
$ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
-
發布過程中如果出現要求註冊的提示,請上傳您的憑證,並向 Google 進行註冊。
如果您使用上傳金鑰:
- 上傳金鑰只會在 Google 註冊,目的是用來驗證應用程式作者的身分。
- 系統會先從您上傳的 APK 中移除您的簽名,再將 APK 提供給使用者。
升級應用程式簽署金鑰
在某些情況下,您可以要求升級應用程式簽署金鑰。
要求升級應用程式簽署金鑰的常見原因如下:
- 您需要使用經過更嚴格加密的金鑰。
- 您的應用程式簽署金鑰遭到盜用。
重要事項:金鑰升級功能只支援使用應用程式套件的應用程式。
透過 Play 管理中心要求升級金鑰前,請先詳閱下方「提出金鑰升級要求前的重要注意事項」一節。您也可以接著展開下方其他章節,進一步瞭解如何要求升級金鑰。
最佳做法
- 如果您同時也在 Google Play 以外的地方發行應用程式 (或是未來有這方面的計畫) 並想使用同一組簽署金鑰,有兩種方式可供選擇:
- 讓 Google 產生金鑰 (建議做法),然後從應用程式套件探索工具下載經過簽署的通用 APK,發行在 Google Play 以外的地方。
- 您也可以產生要用於所有應用程式商店的應用程式簽署金鑰,並在設定 Play 應用程式簽署功能時將金鑰副本傳送給 Google。
- 為了保護您的帳戶,請為所有能夠存取 Play 管理中心的帳戶啟用兩步驟驗證功能。
- 將應用程式套件發布至測試群組後,您可以前往應用程式套件探索工具存取 Google 從您應用程式套件所產生的可安裝 APK。您可以執行下列作業:
- 複製並分享內部應用程式分享連結;只要輕觸該連結,即可測試 Google Play 會在不同裝置上安裝應用程式套件的哪些內容。
- 下載經簽署的通用 APK。這個 APK 是以 Google 保存的應用程式簽署金鑰進行簽署,凡是應用程式支援的裝置皆可安裝。
- 下載含有特定裝置所有專屬 APK 的 ZIP 封存檔。這些 APK 是以 Google 保存的應用程式簽署金鑰進行簽署。您可以使用
adb install-multiple *.apk
指令,在裝置上安裝這個 ZIP 封存檔中的 APK。
- 為了提升安全性,請另外產生與應用程式簽署金鑰不同的上傳金鑰。
- 如果您使用了任何 Google API,建議您前往 Google Cloud 控制台,為您的應用程式註冊上傳金鑰和應用程式簽署金鑰憑證。
- 如果您使用的是 Android 應用程式連結,請務必更新網站上相應 Digital Asset Links JSON 檔案中的金鑰。
上傳金鑰遺失或遭到盜用?
如果私密上傳金鑰不慎遺失或遭到盜用,您可以建立新的金鑰,然後請開發人員帳戶擁有者在 Play 管理中心啟動金鑰重設程序。
Google 支援團隊註冊新的上傳金鑰後,帳戶擁有者和全域管理員就會在收件匣中收到訊息,以及一封含有更多資訊的電子郵件。接著,您就可以更新 KeyStore,並向 API 供應商註冊金鑰。
帳戶擁有者也可以在 Play 管理中心取消重設要求。
重要事項:重設上傳金鑰並不會影響 Google Play 在將 APK 提供給使用者前,用於重新簽署 APK 的應用程式簽署金鑰。
APK 簽署配置 v4
搭載 Android 11 以上版本的裝置均支援新的 APK 簽署配置 v4。Play 應用程式簽署功能會將 v4 簽署功能用於符合資格的應用程式,讓這些應用程式可以存取在新款裝置上推出的最佳化發行功能。開發人員無須對此採取任何因應措施,v4 簽署功能的使用者也不會受到影響。