0

我繼承了一個最初外包給外部開發人員的Android應用程序,我已經準備好將新更新發送到Play商店。 然後我發現我需要一個特定的簽名密鑰才能更新我們從以前的開發人員那裏獲得的應用程序。 因此,我使用我得到的密鑰並嘗試上傳,生成了一個簽名版本的apk。上傳時,出現錯誤彈出窗口。 see screenshot for detailsAndroid證書可能損壞嗎?我無法上傳新的Play商店應用程序更新

enter image description here

我們問開發商,如果他確信這是他使用的密鑰,並且他發誓他到處看其唯一的關鍵,他使用。雖然,我認爲他可能已經改變了它的密碼......,但並不確定。

我向應用程序引入的重大更改是更改清單中的包並創建產品口味,其中每個包都有自己的包名(其中一個包含Play Store中的原始包名)。

我注意到的一些事情:當我收到應用程序時,應用程序清單有一個評論過的軟件包名稱和一個帶有我們公司名稱的新軟件包名稱。原始的一個名稱是外包公司的名稱,代替了「com.example.appname」位的「示例」,因此它們必須在創建發行版apk時更改了包名。 我不知道這是否意味着任何事情,因爲當我把它放在apk中時,包名稱是相同的......只是商店聲稱應用程序是用不同的證書籤名的,而前一個開發人員發誓他使用了他發給我們的同樣的東西。

任何人都可以告訴我,如果有可能做任何事情來完成這項工作,或者我們完全註定要不得不上傳一個新的應用程序到商店?

感謝您的任何幫助。

更新: 因爲人們在問包名,請讓我澄清一下。 當我得到應用程序時,清單中的所有包名與Playstore中的包名不一樣...所以我重構了整個應用程序包以反映Play商店包名......然後我介紹了產品口味因爲我們需要用不同的品牌新的應用程序,類似於原來的...所以我最終用這樣的結構:

defaultConfig { 
    applicationId "PlayStorePackagName" 
} 
productFlavors { 
    brand1 { 
     applicationId "PlayStorePackagName" //<- for original app 
    } 
    new_brand{ 
     applicationId "NewPlayStorePackagName" //<- for new app. 
    } 
} 

在這種情況下,它不應該不管什麼包的名字是在清單中,應該嗎?

+0

由於您更改了軟件包名稱,因此您必須使用新軟件包上傳新APK。抱歉。 –

+0

但我沒有改變軟件包的名稱....只有內部...這有什麼關係嗎? –

+0

您的應用程序使用您的軟件包名稱列出。由於您更改了它,因此完全視爲新應用程序。 –

回答

0

您不能更改軟件包名稱,也不能更改Playstore的應用程序證書!如果您沒有正確的證書,則無法將您的應用作爲現有更新提交。

證書檢查

但是您可以檢查存儲在您的可用密鑰庫的信息,並將其與當前的商店APK比較。例如:

jarsigner -verify -verbose -certs yourapp.apk 

您可以通過keytool獲取更多詳細信息。請參閱this主題了解更多信息。

包名稱

您可以在Play商店中瀏覽到您的應用程序時,你的應用程序檢查正確的包名。

舉例谷歌加:https://play.google.com/store/apps/details?id=com.google.android.apps.plus

id=com.google.android.apps.plus在這種情況下,包名。這不能被更改爲您的應用程序

但是,此包名是由您的應用程序在您的應用程序中定義。您的應用程序的結構可以有不同的軟件包名稱。有關更多信息,請參閱here

+0

這可能是最正確的答案。 我真的認爲我們得到的關鍵是腐敗或錯誤的,因爲當我非常確定我使用了正確的包名時,指紋會隨機改變是沒有意義的。我的意思是指紋的整個意義在於,如果您使用相同的配置,它會保持不變,否? 反正我們上傳了一個新的應用程序。這次我們烘烤了關鍵:) –

0

docs

當你準備更改您的APK,請務必更新應用的版本代碼,以及讓現有的用戶將收到您的更新。

使用下面的清單,以確保新的APK準備更新現有用戶:

  • 更新APK的包名必須是一樣的當前版本。
  • 版本代碼需要大於當前版本。詳細瞭解版本控制應用程序。
  • 更新後的APK需要使用與當前版本相同的簽名進行簽名。

要驗證您的APK使用相同的認證,在之前版本中,您可以在兩個的APK運行以下命令並比較結果:如果結果相同

$ jarsigner -verify -verbose -certs my_application.apk

,你正在使用相同的密鑰,並準備繼續。如果結果不同,則需要使用正確的密鑰重新簽名APK。

你說:

我介紹給應用程序的重大變化正在改變着包裝清單中

因此,這是問題的根源。您需要使用相同的軟件包名稱。

+0

但是androidmanifest軟件包的名稱總是「錯誤」......因爲它與playstore中的不一樣。 所以我在清單更名爲反映一個在Play商店中同時還設置了productflavours覆蓋包名稱: 'defaultConfig { \t的applicationID「originalPlayStorePackagName」 } productFlavors { \t brand1 { \t \t的applicationID 「originalPlayStorePackagName」 \t} \t new_brand { \t \t的applicationID 「NewPlayStorePackagName」 \t} }'.....所以是不可能overwr迭代包名? o.o –

相關問題