我使用的是一个简单的TWA(一个支持PWA的网站,打包到本机Android应用程序中(和bubblewrap。为了使TWA正常工作,它必须有一个assetlinks.json
文件,其中包括上传到Web服务器的签名密钥的sha256指纹。
似乎有两个签名密钥:一个应用程序和一个上传密钥。
- 如果我通过playstore发布应用程序,TWA希望查看应用程序密钥
- 如果我只是安装本地apk文件,它需要上传密钥
此外,不同的密钥工具将输出不同的密钥:
- Bubblewrap似乎使用了应用程序密钥:Bubblewrap/bullewrap指纹生成器AssetLinks
- Google Play似乎也使用了应用程序密钥
keytool
似乎使用了上传密钥:keytool -printcert -jarfile app-release-signed.apk | grep SHA256
现在我想知道我是否误解了什么。为什么本地apk文件需要与playstore版本不同的密钥?将两个shasum都上传到assetlinks.json
文件以允许playstore发布和本地测试是否安全?
所以我花了一些时间来理解整个过程,并找到正确的文档。
- 我强烈建议阅读文档
- 应用程序密钥用于Google Play发布,上传密钥用于本地apk文件
- 将两者集成到assetlinks.json文件中是安全的,文档中也对此进行了解释
- 对于本地测试和google play同时发布的,要求文件中同时列出两个键
- 钥匙可以从问题中提到的3个位置获得
- 您的设备可能需要一段时间才能识别该文件的更新。它由谷歌缓存
从谷歌开发者那里听到也很有趣:
在资产链接文件中同时拥有两个指纹肯定更方便,这是我个人做的事情。然而,我的TWA是用于测试的,所以我不太担心安全问题。
不利的一面是,你会增加攻击面——如果有人偷走了你的调试密钥(可能是未加密的,你的计算机上有一些默认密码(,他们可能会声称与你的网站有关联(并从他们的应用程序中截取指向它的链接(。