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 –

相关问题