Google Play Android应用程序的应用程序签名密钥和上传签名密钥之间的区别是什么



我使用的是一个简单的TWA(一个支持PWA的网站,打包到本机Android应用程序中(和bubblewrap。为了使TWA正常工作,它必须有一个assetlinks.json文件,其中包括上传到Web服务器的签名密钥的sha256指纹。

似乎有两个签名密钥:一个应用程序和一个上传密钥。

  1. 如果我通过playstore发布应用程序,TWA希望查看应用程序密钥
  2. 如果我只是安装本地apk文件,它需要上传密钥

此外,不同的密钥工具将输出不同的密钥:

  1. Bubblewrap似乎使用了应用程序密钥:Bubblewrap/bullewrap指纹生成器AssetLinks
  2. Google Play似乎也使用了应用程序密钥
  3. keytool似乎使用了上传密钥:keytool -printcert -jarfile app-release-signed.apk | grep SHA256

现在我想知道我是否误解了什么。为什么本地apk文件需要与playstore版本不同的密钥?将两个shasum都上传到assetlinks.json文件以允许playstore发布和本地测试是否安全?

所以我花了一些时间来理解整个过程,并找到正确的文档。

  1. 我强烈建议阅读文档
  2. 应用程序密钥用于Google Play发布,上传密钥用于本地apk文件
  3. 将两者集成到assetlinks.json文件中是安全的,文档中也对此进行了解释
  4. 对于本地测试和google play同时发布的,要求文件中同时列出两个键
  5. 钥匙可以从问题中提到的3个位置获得
  6. 您的设备可能需要一段时间才能识别该文件的更新。它由谷歌缓存

从谷歌开发者那里听到也很有趣:

在资产链接文件中同时拥有两个指纹肯定更方便,这是我个人做的事情。然而,我的TWA是用于测试的,所以我不太担心安全问题。

不利的一面是,你会增加攻击面——如果有人偷走了你的调试密钥(可能是未加密的,你的计算机上有一些默认密码(,他们可能会声称与你的网站有关联(并从他们的应用程序中截取指向它的链接(。

最新更新