巴哈姆特

首頁 哈啦區 程式設計板

【問題】關於上傳至Play商店時所要求的金鑰

追蹤話題

【問題】關於上傳至Play商店時所要求的金鑰

Android
茄茈紫子公爵㍿® (x00x8xs) 2018-08-09 20:13:50
#1
替朋友PO文,第一次發文如有錯誤還請多指教

第一次在Play商店上傳應用程式,因為菜逼八忘記設定金鑰,用的是預設debug的金鑰,Google也沒有要求,發佈也正常

日前更新應用程式時,跳出以下畫面


Fine,那就聽他說的換成發佈模式,做個金鑰,結果


現在陷入兩難,若是用原本的金鑰,因為是偵錯模式,Google不給發佈,但換成發佈模式,又因為金鑰不相同而失敗

寄信問了Google官方,得到的是罐頭回覆

(後來發現Google一般不會接受偵錯的金鑰,但好奇的是當初是怎麼上傳成功的?)

網路上爬文,好像沒有多少人遇到這種問題?

來這裡求助,希望有大神可以幫忙解決
QQ: B1 2018-08-14 20:07

試試這個https://truth.bahamut.com.tw/s01/201808/eda18590145152b791158d454c8f4925.JPG?w=300

冒險者 (vn7n24fzkq) 2018-08-12 03:44:37
#2
看樓下
SFINAE: B1 2018-08-15 08:57

debug apk 還是有簽過的喔,只是那把 key 是沒密碼的,名稱預設是 androiddebugkey

冒險者: B2 2018-08-15 09:34

[ADSL1234567B:只是個路人]漲姿勢了

SFINAE (ADSL1234567B) 2018-08-15 08:53:43
CC
#3
繼續用 debug key 簽署,你 build apk 要注意 release 版用的是哪一把金鑰。

如果你用 Google Play App Signing 這服務,就還有辦法把 key 換掉,但你已經是手動上傳簽署過的 apk,基本上這個 bundle ID 沒救了,就只能用當初使用的 debug key。
茄茈紫子公爵㍿®: B1 2018-08-15 19:40

原作者說他沒印象有手動簽過金鑰,那他現在要怎麼繼續用debug金鑰

茄茈紫子公爵㍿®: B2 2018-08-15 19:40

還是其實這樣就真的沒救了

SFINAE: B3 2018-08-16 08:44 編輯

[x00x8xs:奼紫嫣紅㍿®] 預設 debug key 在使用者家目錄/.android/debug.keystore

茄茈紫子公爵㍿®: B4 2018-08-17 16:36

[ADSL1234567B:只是個路人] 了解...感謝大大協助喔

賽普魯斯 (jojomagicer) 2020-05-19 14:16:39
#4
請問樓主問題解決了嗎?
我也碰到這個問題,同樣搞不定。
破破爛爛魔法劍士: B1 2020-05-19 14:40

3 樓留言裡有答案 就是以後這 app id 就只能定型用預設 debug keystore 簽屬 出 release 但是把 keystore 設定到那個 檔案上

破破爛爛魔法劍士: B2 2020-05-19 14:41

如果你是 android sdk 或 studio 重裝過原來的 debug keystore 檔案也遺失了 那就只能換 app id 或是寫信給 google 凹看看

我喜歡elf (timid) 2021-10-19 02:02:23
#5
※ 引述《ADSL1234567B (只是個路人 )》之銘言
> 繼續用 debug key 簽署,你 build apk 要注意 release 版用的是哪一把金鑰。
> 如果你用 Google Play App Signing 這服務,就還有辦法把 key 換掉,但你已經是手動上傳簽署過的 apk,基本上這個 bundle ID 沒救了,就只能用當初使用的 debug key。
可是無論是debug key或release版的金鑰,無論是debug產生apk檔或正式發布產生的apk檔,
不是一定都至少會產生一種已經簽證金鑰的apk檔嗎?
(好像要用命令提示字元java apksigner.jar ...之類的指令才能查詢apk檔案是否有簽證與簽證的版本)
所以我不知道要如何產生一個無金鑰的apk檔?哪怕是debug在手機上產生apk的方式也有debug金鑰。

雖然我從來就沒有用debug金鑰成功發布過,更不曉得Google Play App Signing是什麼東西。
因為我都一直沿用在eclipse就產生過的keystore檔案給予apk檔金鑰。
然而該金鑰就只有V1版本的一組,不知道如何沿用的同時額外再產生V2版本的舊keystore檔金鑰?

因為當我要發布應用程式時就遇到這個問題了,該apk檔沒有V2版本的金鑰不讓我發布API 30的版本。

然而當我更新某個應用程式時,目標設在API 29時,卻顯示警告訊息
您的應用程式目前的目標 API 級別是 29,但目標 API 級別至少須為 30,才能確保應用程式採用最新的 API,讓安全性與執行效能達到最佳狀態。

自 2021 年 8 月起,新應用程式必須指定 Android 11 (API 級別 30) 以上的目標版本。
自 2021 年 11 月起,應用程式更新必須指定 Android 11 (API 級別 30) 做為目標版本。

然而我把該App的目標API級別為30時,導致我無法發布此apk檔。出現的錯誤訊息是:
您上傳的 APK 含有無效的簽名 (進一步瞭解簽署功能)。apksigner 提供的錯誤訊息如下:ERROR: MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET: Target SDK version 30 requires a minimum of signature scheme v2; the APK is not signed with this or a later signature scheme

雖然我不太了解英文那段話的意思,
但問題是我目前使用的密鑰(keystore檔)是當初用eclipse產生的,並沒有所謂的v2簽證。

那以後我不就不能再更新舊的App了嗎?因為已經使用了原來沒有v2簽證的keystore檔的金鑰。

另外我也不知道以後發布新的應用程式,能否沿用舊的keystore檔的金鑰(並添加v2簽證)?
又或者乾脆使用新的金鑰,但我又擔心會發生另類問題,是否有v2簽證、舊的App該怎麼重新發布?
而且我也不明白為何現在看到金鑰的副檔名是jks,而不是keystore。
我只知道我一直沿用舊的keystore,不然到時候要更新App時會遭遇樓主所說的阻攔(無法完成簽署)。

另外又有傳言以後發布新的應用程式時都要使用Android App Bundle的格式才能上架,這該怎麼辦?
是要修改應用程式apk檔的格式,還是金鑰檔案的格式?
更何況我還不懂什麼是Android App Bundle,也不知道怎麼做才能變成那樣的格式。

此外,我還不曉得Android API版本的市佔率如何(怎麼現在連官方的網站都沒有?),
因為我考慮多少等級以下的API版本市占率已經低到可以忽略。


堅果 (advsorcer) 2021-10-25 18:18:12
#6
今天也遇到這個問題
只要從原本的專案怎麼產出來的apk或bundle都不給傳...
忍痛下架前一個APP  重新發布一個   
這次我會記得把KEY留著   有人要幫忙保管嗎 (開玩笑的

延伸閱讀

心得關聯式資料庫是甚麼?

2022-11-10 15:58:54

問題關於PHP圖片檔案上傳同時上傳檔案檔名到資料庫

2021-12-10 15:11:12

問題unity在ios執行上傳圖片時,遇到The request timed out(以解決)

2019-07-03 11:41:46

問題想學C#跟資料庫連結

2018-05-11 01:35:05

對你施展點小魔法🪄

看更多

年上魔法少女

插畫

憧憬成為魔法少女 : 馬吉雅邪惡丨羽鳥大姬姬 Hatori Sama

COS

這是個關於我和一群魔法少女的故事 第七十三章

小說

電梯
開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】