如果您是 Android 和 Google Play 新手網頁開發人員,請注意以下事項: 注意哪些地方就這方面而言,已經有了許多相關資源和文件了 (感謝 Android 這部影片會特別說明一些重要概念,以及這些概念與 Bubblewrap 有何關聯。
上傳與簽署金鑰
如果您打算使用 Bubblewrap 產生 Android App Bundle (AAB) 格式,請注意:自 8 月起 2021 年,Google Play 要求所有新應用程式都必須採用 Android App Bundle 格式)。 或 APK 上傳及發布至 Google Play,您必須使用簽署金鑰簽署應用程式。Google 敬上 Google Play 提供兩種處理方式的處理方式:
- Play 應用程式簽署 (強烈建議):Google 將管理及保護您應用程式的簽署金鑰
不必確保憑證管理是否適當
因為 Google Cloud 會為您管理安全性並使用該 ID 簽署您要發布的 APK。Play 應用程式簽署功能使用兩個金鑰。「應用程式」
簽署金鑰」Google 會為您管理「上傳金鑰」因此您應保留
私人檔案。您必須使用上傳金鑰簽署應用程式,以便上傳至 Play 管理中心。這個
萬一您的上傳金鑰遺失或遭到盜用,您的系統仍允許您重設
與 Play 支援團隊聯絡。目前,Google Play
可讓您將應用程式上傳為 AAB 或 APK:
- Android App Bundle (AAB):何時 您將 AAB 上傳至 Play 管理中心後,就必須將建構和產生的 APK 延後到 Google Play 商店。使用者下載並安裝您的應用程式時,Google Play 會發行 以簽署的 APK 形式提供給使用者因此,簽署 APK 時,也必須透過 Google Play。因此根據預設,如果您以 AAB 形式將應用程式上傳至 Play 管理中心, 您必須使用 Play 應用程式簽署功能。
- APK:發布 APK 時,您可以選擇採用 Play 應用程式簽署功能。選擇加入 Play 應用程式 強烈建議您簽署,這麼做可提高簽署金鑰的安全性。如先前所述 Google Play 即將要求所有新應用程式都必須以 AAB 格式上傳,因此我們 建議您採用這個方法,而非上傳 APK。
- 管理自己的簽署金鑰:如果您選擇自行管理金鑰,但不選擇加入 Play 應用程式 簽署後,您必須全權負責應用程式的簽署金鑰。這個 API 和 Play 應用程式簽署功能不同 也無法重設。因此,遺失應用程式的簽署金鑰就代表 也無法再更新應用程式
在 bubblewrap init
設定期間,當系統顯示「簽署金鑰資訊 (5/5)」部分時,
系統會提示您輸入「Key store location」和「Key name」,或使用預設值。
預設金鑰儲存庫位置為專案目錄中的 android.keystore
檔案,以及預設值
金鑰名稱為 android
。如果 Bubblewrap 在
設定完成後,Google 助理就會為您建立一組密碼,並提示您輸入密碼。記下密碼
您需要在建構程序 (bubblewrap build
) 中輸入這些資訊,而這些項目會在建構過程中使用
簽署應用程式。如果您選擇加入 Play 應用程式簽署計畫,該簽署金鑰就會成為 Bubblewrap 的簽署金鑰
產生及用於簽署的應用程式,會變成「上傳金鑰」。您是否選擇使用
以 Bubblewrap 產生的金鑰做為簽署或上傳金鑰的金鑰,您應妥善保管並妥善保管金鑰。
我們不建議您實行版本管控。而是限制
可以授予使用者存取權
Digital Asset Links
必須使用 Digital Asset Links,才能聲明網站和 Android 之間的關係
應用程式。為了確保 Bubblewrap 產生的 Android 應用程式已經過正確驗證,並啟動
信任網路活動 (而不是 Chrome 自訂分頁),您需要在
您的 assetlinks.json
檔案。然後上傳到您的網站 (.well-known/assetlinks.json
)
(相對於根)。您的 assetlinks.json
檔案應採用下列格式:
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
取得 SHA256 憑證指紋
如要建立 assetlinks.json
檔案,您需要相關聯的 SHA 256 憑證指紋
使用應用程式的簽署金鑰進行簽署。請特別注意
簽署和上傳金鑰會有所不同。請務必
這點尤其重要,如果您發現應用程式以 Chrome 自訂分頁的形式啟動 (也就是
瀏覽器列)。那麼,您的 assetlinks.json
檔案可能沒有
對應各種索引鍵的指紋。
在 assetlinks.json 中同時保留簽署和上傳憑證的指紋,會非常有幫助
,方便您在本機對應用程式進行偵錯。詳情請參閱下方的「新增更多金鑰」一節。
瞭解如何在 assetlinks.json
檔案中新增這兩個金鑰。
你可以透過多種方式取得指紋,詳情請參閱後續章節。 各組指紋都應獲得相同的指紋,因此你可以自由選擇 非常便利
透過 Play 管理中心
視您是否加入 Play 應用程式簽署計畫而定,可能會有一或兩個金鑰。擷取 為每個金鑰輸入適當 SHA256 指紋:
- 前往 Play 管理中心
- 選取感興趣的應用程式
- 在左側導覽選單的「版本」下方,依序前往「設定」->應用程式完整性。
- 請複製適當金鑰的 SHA256:
簽署金鑰:複製「應用程式簽署金鑰憑證」的 SHA256 指紋。這個 從 Google Play 商店下載應用程式的指紋,就會是 Google Play 發布了經過簽署金鑰簽署的應用程式。
上傳金鑰:複製「上傳金鑰憑證」的 SHA256 指紋。這個 如果你在本機安裝 (透過 USB 透過 USB 使用 ADB), 範例)。該 APK (在您的本機電腦) 是由 Bubblewrap 建立,因此簽署人: 系統在
init
設定期間也會為您建立金鑰。請注意,這可能是 本機安裝版應用程式的簽署金鑰,但這實際上會變成「上傳金鑰」一次 以及您透過 Play 發布應用程式
走keytool
keytool 是鍵 憑證管理工具您可以使用 keytool 擷取與 才會產生 APK 或 AAB Bubblewrap。請注意,這個指紋是用於本機簽署金鑰, 您將應用程式上傳至 Play 並選擇加入 Play 應用程式簽署計畫後,這組金鑰就會成為「上傳金鑰」。
keytool -printcert -jarfile [path to APK or AAB] | grep SHA256
透過資產連結工具
您也可以使用 Asset Link Tool 為應用程式取得正確的 Digital Asset Links 檔案:
- 前往 Play 商店安裝素材資源連結工具。
- 在同一部裝置上透過 Google Play 商店下載應用程式,或是在本機安裝。
- 開啟 Asset Link Tool 應用程式,即可查看已安裝在
依套件名稱排序裝置按照稍早時選擇的應用程式 ID 篩選清單
bubblewrap init
,然後按一下該項目。 - 系統隨即會顯示一個頁面,列出應用程式簽章和系統產生的 Digital Asset Link。按一下 複製或分享畫面底部的「分享」按鈕,可視需要匯出內容 (例如「儲存至 Google Keep」、 透過電子郵件傳送給自己)。
同樣的概念也適用於簽署或上傳金鑰的情況。如果您是從 Google Cloud 控制台 Google Play 商店,Asset Link Tool 會提供應用程式簽署金鑰的指紋。如果 如果你是直接從本機電腦安裝應用程式,則指紋就可用來辨識金鑰 已產生對話框。
確保資產連結檔案可供存取
上傳完成後,請確認可在瀏覽器中存取素材資源連結檔案。
檢查 https://example.com/.well-known/assetlinks.json
是否解析到您剛剛上傳的檔案。
Jekyll 網站
如果您的網站是由 Jekyll 產生的網站 (例如 GitHub 網頁),您就必須新增一行
設定,以便在輸出內容中加入 .well-known
目錄。
GitHub 說明提供有關這個主題的更多資訊。
在網站的根目錄建立名為 _config.yml
的檔案 (如果已有檔案,請將其新增至該檔案中)
輸入:
# Folders with dotfiles are ignored by default.
include: [.well-known]
新增更多金鑰
一個 Digital Asset Link 檔案可包含多個應用程式,而每個應用程式都能包含多個應用程式 只要用到一個金鑰即可 舉例來說,如要新增第二個鍵,只要使用 素材資源連結工具: 找出該鍵,並將其新增為第二個項目。 Chrome 中剖析此 JSON 的程式碼非常嚴格,因此請確認您不會意外將 清單結尾多出半形逗號。
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
},{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.your.package_name",
"sha256_cert_fingerprints": [
"XX:XX:XX:..."
]
}
}]
疑難排解
Chrome 會記錄 Digital Asset Links 驗證失敗的原因,您可以前往
搭載 adb logcat
的 Android 裝置。
如果您在 Linux/Mac 上進行開發,可以查看已連結裝置的相關記錄
取代為:
> adb logcat -v brief | grep -e OriginVerifier -e digital_asset_links
舉例來說,如果您看到 Statement failure matching fingerprint.
訊息,則應使用
Asset Link Tool 可查看應用程式的簽名,並確認其與 assetlinks.json
中的簽名相符
檔案。