【发布时间】:2017-06-28 15:14:39
【问题描述】:
我继承了一个最初外包给外部开发人员的 Android 应用程序,修复了一些东西,现在我准备将新的更新发送到 Play 商店。 然后我发现我需要一个特定的签名密钥来更新我们从以前的开发人员那里得到的应用程序。 所以我使用我得到的密钥生成了一个签名的发布 apk 并尝试上传。上传后,我会弹出一个错误消息。 see screenshot for details
我们询问了开发人员是否确定那是他使用的钥匙,他发誓他到处寻找,发现这是他唯一使用的钥匙。不过,我确实认为他可能已经更改了密码……但不确定。
我对应用程序进行的重大更改是更改清单中的包并创建产品风格,每个产品都有自己的包名称(其中一个必须保留来自 Play 商店的原始包名称)。
我注意到一些事情:当我拿到应用程序时,应用程序清单有一个注释掉的包名和一个包含我们公司名称的新包名。原来的那个用外包公司的名字代替了“com.example.appname”位的“example”,所以他们在创建发布apk时一定是改了包名。 我不知道这是否意味着什么,因为当我把它全部放在一个 apk 中时,包名称是相同的......只是商店声称该应用程序是用不同的证书签名的,而以前的开发者发誓他使用就是他寄给我们的。
谁能告诉我是否有可能做任何事情来完成这项工作,或者我们完全注定要失败并且必须将新应用上传到商店?
感谢您的帮助。
更新: 因为人们在询问包名,所以让我澄清一下。 当我得到应用程序时,清单中的所有包名都与 Playstore 中的包名不同......所以我在整个应用程序范围内重构了整个包以反映 Play-store 包名......然后我介绍了产品风格因为我们需要一个具有不同品牌的新应用程序,它与原始应用程序相似......所以我以这样的结构结束:
defaultConfig {
applicationId "PlayStorePackagName"
}
productFlavors {
brand1 {
applicationId "PlayStorePackagName" //<- for original app
}
new_brand{
applicationId "NewPlayStorePackagName" //<- for new app.
}
}
在这种情况下,清单中的包名称应该无关紧要,不是吗?
【问题讨论】:
-
由于您更改了包名,您将不得不使用新包上传新的 APK。对不起。
-
但我没有更改包名....只是在内部...这有关系吗?
-
您的应用使用您的包名列出。由于您更改了它,因此完全被视为新应用程序。
-
@Sourav 但是清单中的包名一开始就错了。它与 Play 商店中的不一样......所以我更改了包名称以反映 Play 商店中的那个......然后我使用 productflavors 覆盖包名称,因为我需要一个稍微改变的版本不同的品牌和新的包名:基本上我做了这样的事情:
defaultConfig { applicationId "OriginalPlayStorePackagName" } productFlavors { brand1 { applicationId "OriginalPlayStorePackagName" } new_brand{ applicationId "NewPlayStorePackagName" } } -
您想使用 applicationIdSuffix 吗?你可以在这里检查吗? developer.android.com/studio/build/…
标签: android google-play code-signing digital-certificate code-signing-certificate