首页 > 解决方案 > sharedUserId 是否需要多个应用程序的相同签名密钥库?

问题描述

我需要在多个应用程序之间共享 SharedPreference。我找到了这种分享 SharedPreference 的方式。但我不确定我是否严格需要使用相同的密钥库文件对两个 APK 进行签名。

官方页面对此几乎没有描述。

但是,如果两个或多个应用程序的此属性设置为相同的值,则它们都将共享相同的 ID——前提是它们的证书集相同。

provided that their certificate sets are identical这是否意味着仅用于发布密钥库?

请确认我是否需要使用相同的密钥签名才能发布 APK。

标签: androidandroid-manifestandroid-keystore

解决方案


是的,在您的应用程序中使用具有相同 uid 的 sharedUserId 要求它们使用相同的密钥进行签名。请注意,多个密钥可以存储在同一个密钥库中,您需要使用相同的私钥。

在将应用程序上传到 Playstore 之前,您可以使用以下方法验证应用程序是否由相同的密钥签名:

apksigner 验证 --verbose --print-certs myapp.apk

对于共享相同 uid 的所有应用,该命令的输出(将 myapp.apk 替换为您的应用)需要相同。

否则,我实际上建议不要使用 sharedUserId 并找到在应用程序之间共享信息的不同方式。尝试内容提供商或其他一些 IPC 机制。


推荐阅读