我正在编写一个 python 脚本来使用 gradlew 构建和签署我的 android 项目,网络上的每个人都在谈论你如何丢失生成的密钥,因此你可能会失去更新已发布应用程序的能力。我的问题是使用 keytool 生成的每个密钥都是唯一的吗?并且使用该密钥签名的 apk 可以轻松上传到 google play 商店,并且使用该特定密钥签名的每个应用程序都将被视为更新?
谢谢 。
是的,keytool 生成的每个密钥都是唯一的。
对于密钥管理,您基本上有几个选择:
在本地生成应用签名密钥,确保其安全,并且仅在生成应用的发布版本时使用它。为您的应用程序的调试版本使用单独的密钥。
在本地生成应用签名密钥,通过 Play 注册 App Signing,向 Google 提供您的密钥。在注册过程中,系统会提示您创建另一个密钥(称为上传密钥)。您可以正常使用上传密钥对上传到 Play 管理中心的应用进行签名,但请确保将应用签名保存在具有严格 ACL 的安全位置。如果您丢失了上传密钥,您可以随时将其重置,因此不太重要。
最简单的解决方案(也是 Play 管理中心的默认解决方案)是注册App Signing by Play并让 Google 生成应用签名密钥。这样您就可以确保不会意外丢失或泄漏它,并且它会足够安全。此外,您只需处理一个密钥:上传密钥,如果丢失可以重置。
我推荐第 3 个选项(最简单、最安全),但有些人更喜欢随身携带密钥副本,因此选择了第 2 个选项。正如您似乎已经听说过的那样,第一种选择非常冒险。