管理您的應用程式簽署金鑰

只要使用 Google Play 應用程式簽署,您就能以安全的方式為新的和現有的應用程式管理應用程式簽署金鑰。系統會透過安全的基礎架構 (與 Google 用來儲存自身金鑰的基礎架構相同) 妥善存放金鑰。

Google Play 應用程式簽署的運作方式

如果應用程式使用 Android App Bundle

如果應用程式使用了 App Bundle,就需要採用 Google Play 應用程式簽署。選擇採用應用程式簽署後,請按照以下步驟操作:

  1. 簽署您的 App Bundle,然後將其上傳至 Play 管理中心。
  2. Google 會驗證您的簽名再予以移除,然後使用這個 App Bundle 產生基準 APK、設定 APK 以及動態功能 APK (如適用)。詳情請參閱 Android 開發人員網站
  3. Google 會使用您提供的原始應用程式簽署金鑰重新簽署 APK,再將應用程式提供給使用者。

對於使用應用程式簽署金鑰簽署的現有 APK 或新 APK,Google 一律不會重新簽署。這可讓您直接在開放式測試群組、封閉式測試群組和內部測試群組中測試您的 App Bundle,同時繼續在正式版中發佈現有 APK,而不會被 Google Play 變更。

如果您使用上傳金鑰簽署 APK 並上傳,Google 就會使用您的部署金鑰重新簽署 APK。

如果應用程式使用 APK

當您上傳 APK 時,我們不會強制您參與 Google Play 應用程式簽署計劃。如果您想要繼續自行管理金鑰,可以維持原本的做法。

如果您遺失了金鑰庫,或認為金鑰庫遭到破解,Google Play 應用程式簽署計劃可讓您提出重設上傳金鑰的申請。如果您在沒有註冊加入 Google Play 應用程式簽署計劃的狀況下遺失了金鑰庫,則必須使用新的套件名稱重新發佈應用程式。

權限和存取權

如果您是 Play 管理中心帳戶擁有者,或是具有「管理正式版」全域權限的使用者,可以選擇加入 Google Play 應用程式簽署計劃。每個開發人員帳戶都必須分別接受一次《服務條款》,接受條款後,您就能為個別應用程式註冊這項計劃。

注意:接受《服務條款》不代表與您開發人員帳戶相關聯的所有應用程式都會自動註冊應用程式簽署計劃。

金鑰的類型和重要定義

  • 應用程式簽署金鑰:這個金鑰的作用是簽署使用者裝置上的 APK 檔案。您目前持有並用於簽署 APK 的就是應用程式簽署金鑰。您完成計劃的申請流程後,這組金鑰就會上傳至 Google。

  • 上傳金鑰 (現有應用程式可選擇是否使用):在計劃註冊過程中產生的新金鑰。日後您一律必須先用這個上傳金鑰來簽署 APK,才能將檔案上傳到 Play 管理中心。
  • 私密金鑰:就 APK 簽章而言,這是用來簽署 APK 的金鑰。私密金鑰必須妥善保存,避免外洩。
  • 公開金鑰:就 APK 簽章而言,這是用來驗證 APK 簽章的金鑰。公開金鑰可向所有人公開。
  • 憑證:憑證包含一組公開金鑰,以及一些與金鑰擁有者相關的額外識別資訊。
  • PEPK 工具:Play Encrypt Private Key 這項工具可用於從 Java Keystore 匯出私密金鑰,以及對要轉移到 Google Play 的私密金鑰進行加密。

提示和最佳做法

  • 為了保護您的開發人員帳戶,建議您為所有能夠存取 Play 管理中心的帳戶啟用兩步驟驗證功能
  • 如要對已透過上傳金鑰簽署的 APK 進行測試,您必須透過任何以您應用程式簽章進行驗證的服務或 API (例如 Google Maps API 或 Facebook SDK) 為您的上傳金鑰註冊。如果您使用 Google API,建議您前往 Google Cloud Console 為您的應用程式註冊上傳憑證。

總覽

在您開始採用金鑰簽署流程之前,請前往 Android 開發人員網誌觀看應用程式簽署功能的簡介影片。

新應用程式

步驟 1:建立上傳金鑰
  1. 如要為新的應用程式建立上傳金鑰,請按照簽署應用程式一文的指示操作。
  2. 使用上傳金鑰簽署您的新 APK。

關於上傳金鑰

  • 上傳金鑰只會在 Google 註冊,目的是用來驗證應用程式作者的身分。
  • 系統會先從您上傳的 APK 中移除您的簽章,再將 APK 提供給使用者。

上傳金鑰的限制

  • 上傳金鑰必須為 2048 位元以上的 RSA 金鑰。
  • 系統不支援 DSA 金鑰、EC 金鑰或少於 2048 位元的 RSA 金鑰。
步驟 2:備妥您要發佈的應用程式版本
  1. 前往 Play 管理中心
  2. 選取應用程式。
  3. 在左側選單中依序選取 [版本管理] > [應用程式版本]
  4. 在「Google Play 應用程式簽署」旁邊選取 [接受]。
步驟 3:上傳已簽署的應用程式
  1. 按照步驟進行準備作業與發佈版本
  2. 將應用程式提供給使用者之前,Google Play 會先移除您的上傳金鑰簽章,並使用新的金鑰重新簽署。
步驟 4:向 API 供應商註冊您的應用程式簽署金鑰

如果您的應用程式使用了任何 API,您通常需要為 Google 簽署您的應用程式時所使用的金鑰憑證進行註冊程序,以便進行驗證。一般來說,這項程序會利用憑證指紋來進行。

如何找出 Google 在發佈之前用來重新簽署 APK 的金鑰憑證:

  1. 登入 Play 管理中心
  2. 選取應用程式。
  3. 依序按一下左側選單中的 [版本管理] > [應用程式簽署]
  4. 您可以在這個頁面中複製最常見的應用程式簽署憑證指紋 (MD5、SHA-1 和 SHA-256)。如果 API 供應商需要不同類型的指紋,您也可以下載 DER 格式的原始憑證,然後使用 API 供應商要求的轉換工具來執行這個憑證。

現有的應用程式

步驟 1:選擇加入計劃

如何為應用程式進行註冊:

  1. 登入 Play 管理中心
  2. 選取應用程式。
  3. 依序按一下左側選單中的 [版本管理] > [應用程式簽署]
  4. 詳閱《服務條款》,然後選取 [接受]
步驟 2:將原始金鑰傳送給 Google 並建立上傳金鑰

如何將原始金鑰上傳至 Google Play 並建立上傳金鑰:

  1. 找出您的原始應用程式簽署金鑰。
  2. 登入 Play 管理中心
  3. 選取應用程式。
  4. 依序按一下左側選單中的 [版本管理] > [應用程式簽署]
  5. 按照畫面上的操作說明轉移原始應用程式簽署金鑰。
    • 選用:您也可以產生上傳金鑰,再向 Google 註冊該金鑰。
  6. 在下一個畫面中,您會看到應用程式憑證的指紋。

關於上傳金鑰

  • 上傳金鑰只會在 Google 註冊,目的是用來驗證應用程式作者的身分。
  • 系統會先從您上傳的 APK 中移除您的上傳金鑰,再將 APK 提供給使用者。

上傳金鑰的限制

  • 上傳金鑰必須為 2048 位元以上的 RSA 金鑰。
  • 系統不支援 DSA 金鑰、EC 金鑰或少於 2048 位元的 RSA 金鑰。

如果您建立了上傳金鑰,可按照以下的選擇性步驟操作

步驟 3:更新金鑰庫

建立上傳金鑰後,請更新您的金鑰庫。舉例來說,建議您檢查下列位置:

  • 本機電腦
  • 鎖定的內部部署伺服器 (變動式 ACL)
  • 雲端代管系統 (變動式 ACL)
  • 專屬機密管理服務
  • (Git) 存放區
步驟 4:使用上傳金鑰簽署後續的應用程式更新

完成上述步驟後,您就必須使用上傳金鑰簽署現有應用程式的所有更新,讓 Google 能夠驗證您的身分。Google 會先重新簽署您的 APK,再將更新提供給使用者。

如何找出應用程式的上傳金鑰:

  1. 登入 Play 管理中心
  2. 選取應用程式。
  3. 依序按一下左側選單中的 [版本管理] > [應用程式簽署]

建立新的上傳金鑰

如果您已註冊加入應用程式簽署計劃,可以在遇到下列情況時建立新的上傳金鑰:

  • 您遺失了私密金鑰
  • 您的私密金鑰遭到破解
  • 您當初並未為現有的應用程式建立上傳金鑰

注意:重設上傳金鑰並不會影響到 Google Play 在向使用者發佈應用程式前用於重新簽署 APK 的應用程式簽署金鑰。

步驟 1:產生新的私密金鑰及上傳憑證

如要產生及註冊新的上傳金鑰,請按照 Android Studio 說明中心的指示操作。新的金鑰不得與先前的金鑰相同。

接著,為新的金鑰匯出憑證 (PEM 格式):

keytool -export -rfc -alias <upload> -file <upload_certificate.pem> -keystore <keystore.jks>

步驟 2:與我們的支援小組聯絡

我們的支援小組只接受由 Play 管理中心帳戶擁有者發出的金鑰重設要求。

如要聯絡我們,請由帳戶擁有者填寫這份表單。請記得附上 upload_certificate.pem 檔案。

新的上傳金鑰註冊完畢後,您會收到電子郵件,屆時您便可以按照上述步驟更新金鑰庫以及 API 供應商註冊資訊

這篇文章實用嗎?
我們應如何改進呢?