[英]Uploading Android App Bundle to Google Play Console - key signing error
[英]Google Play Console Play App Signing - The Android App Bundle was not signed
我正在嘗試創建一個 Playstore 版本。
我已按照指南創建上傳密鑰和密鑰庫,信中: https ://developer.android.com/studio/publish/app-signing#generate-key
然后,我使用上傳密鑰生成了我的應用程序的簽名應用程序包,正如此處所述: https ://developer.android.com/studio/publish/app-signing#sign_release
這導致了一個名為: app-release.aab
的文件
現在,因為這個應用程序是全新的,並且以前從未發布過,所以不需要導出加密密鑰並“選擇現有應用程序進入 Play 應用程序簽名”,因為我在創建新應用程序時已經選擇了這個在播放控制台中列出,當然,我之前從未上傳過使用另一個密鑰簽名的 APK 用於此應用列表。
接下來,我轉到播放控制台並創建一個新的生產版本。 但是,當我上傳app-release.aab
文件時,我看到以下錯誤消息:
"The Android App Bundle was not signed."
這完全令人費解。
據我所知,我已按照信中的說明進行操作,並且嘗試在 google 上進行一些研究,但沒有找到答案。
有這個過程經驗的人可以幫助我嗎?
編輯:
我對整個過程的不理解是,我被要求在本地生成上傳密鑰,但從未實際將密鑰上傳到谷歌播放控制台——谷歌到底是如何知道應用程序是用上傳密鑰簽名的,如果他們從未見過上傳密鑰? 但是,在生成上傳密鑰的文檔中沒有任何地方聲明我應該對本地生成的密鑰做任何事情,而不是使用它在本地生成簽名的應用程序包,這正是我所做的。
編輯2:
以下屏幕截圖顯示了我創建上傳密鑰並使用上傳密鑰生成我的應用程序的簽名包的過程:
然后,相當奇怪的是,從捆綁包所在的目錄運行keytool -printcert -jarfile app-release.aab
的結果:
您可以通過在本地運行以下命令之一來驗證您上傳到 Play 的應用程序包是否已簽名:
使用 jarsigner:
jarsigner -verify app.aab
使用密鑰工具:
keytool -list -printcert -jarfile app.aab
如果它說文件已“驗證”(或者您在使用 keytool 時看到正在打印的證書),那么您的 AAB 確實已簽名。 如果是,請確保將正確的文件上傳到 Play 管理中心,如果仍然無法正常工作,請聯系開發者支持。
如果它說文件未驗證/簽名,請確保您在生成簽名包時已在 Android Studio 中選擇了一個密鑰庫,並確保構建成功。
如果一切都失敗了,做一個完整的清潔項目,然后再試一次。
如果 Google 從未見過上傳密鑰,他們究竟是如何知道該應用已使用上傳密鑰簽名的?
Google 只是從您上傳的第一個 APK 或 AAB 中提取證書,並將其視為上傳證書。 每個后續上傳都必須使用相同的密鑰簽名,但第一個可以使用任何簽名。
我嘗試構建一個設置為“debuggable true”的發布包以上傳到我的測試通道,以調試發布密鑰哈希並遇到此問題。 我以為我已經破壞了試圖使用 keytool 和 openssl 獲取密鑰哈希的東西,就像我改變了一些讓它停止工作的東西,但這只是因為我在 build.gradle buildTypes 中使發布可調試。 如果他們遇到同樣的問題,對接下來來這里的人來說是一個有用的想法。
我必須在簽署之前重建項目。
我遇到了類似的問題(就在幾天前)。
通過在我的 .jks 文件上運行以下命令,然后通過 Android Studio 並再次生成簽名的應用程序包,我能夠解決我的問題(我不知道為什么)。
$ keytool -list -keystore 'fakeNmae.jks' -storepass fake-password-same-one-i-used-in-android-studio
完全按照您看到的方式使用該命令,當然除了將您的 .jks 文件名替換為上面的文件名(確保它在單引號之間),然后在 -storepass 命令之后添加您的密碼。
希望對你也有幫助。
這是我在 SO 上發布的關於問題的條目。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.