android - GooglePlay 的应用签名会重置我的应用程序吗?
问题描述
我在 Play-store 中有一个现有的应用程序,但仍未选择通过 google play 进行应用程序签名。
最近我们打算使用 AppBundle,但这需要通过 google play 进行应用签名。
因为我们负担不起退出用户的费用,我们将他们存储accessToken
在SharedPreference
; 一个特别的问题让我担心现有用户设备的迁移过程:
由于新的 apk 将使用不同的密钥进行签名,这是否意味着,如果我的应用程序已
androidBackup="false"
在 中定义AndroidManifest.xml
,用户将丢失所有本地存储的文件(sharedPref、数据库等)?如果没有,谷歌如何设法防止这种情况发生?我们通过设置包名称和签名密钥 SHA-1 配对来限制 Google Cloud API 的使用。这是否意味着我只有在发布到 Playstore 后才能找出新的签名密钥?
解决方案
当您注册Google Play App Signing 时,系统会要求您上传您的私钥(加密),以便 Play 可以使用相同的密钥代表您签署 APK 。因此,您的最终用户不会有任何区别,他们将收到一个使用相同密钥签名的 APK,因此备份不会受到影响。
这也应该回答您的第二个问题:没有新的签名密钥,它仍然是相同的,因此证书的 SHA-1 不需要更改。
注意:系统会提示您选择生成的新“上传密钥”是 App Bundle 将用于签名的密钥,但您的最终用户将永远不会看到任何使用该密钥签名的 APK。建议使用与您的应用签名密钥不同的上传密钥,以便您可以将应用签名密钥放在保险箱中(泄露可能会产生非常糟糕的后果),而如果您丢失了上传密钥,可以通过 Google 轻松重置/泄漏它。
希望有帮助!
推荐阅读
- swift - 新窗口控制器无法正确响应
- reactjs - 如何在没有 node.js 的情况下使用“索环”?
- shopify - 如何将页面标题分离到它自己的 Liquid/shopify 组件中?
- ios - 创建 iOS Metal 纹理时 bytePerRow 值很奇怪
- c - 为什么 C 没有创建我的链表头?
- python - 爆破喇叭ffmpeg音效
- c# - LastWriteTime 和 LastAccessTime 有什么区别
- highcharts - highchart 服务器端向下钻取
- android - 将颜色渐变设置为直接在 XML 中绘制的形状
- java - 我创建了一个默认拨号器应用程序,但 ACTION_CALL 意图在某些设备上不起作用