【问题标题】:Detecting debug keystore or release keystore programmatically以编程方式检测调试密钥库或释放密钥库
【发布时间】:2017-12-08 21:41:18
【问题描述】:

我想知道是否有办法检测程序是在默认(调试)密钥库(从 Eclipse 运行时)还是在签名密钥库(发布到 Android 市场时)上运行

我在我的应用程序中使用 Google 地图,并且我想以编程方式更改 Maps API 密钥以适当地进行测试和发布,因为一个 API 密钥仅适用于测试或 释放。

必须有办法做到这一点,因为 Google 地图可以检测到用于编译应用程序的密钥库(以启用或禁用地图)。

【问题讨论】:

标签: android google-maps keystore


【解决方案1】:
【解决方案2】:

我不知道 Google 地图是如何做到的,但这里有一个可能的替代方案:您可以使用包管理器提取用于签署 APK 的证书并将其与您已知的发布密钥库进行比较。我建议将其与此而不是您的调试密钥库进行比较,因为调试存储每年都会过期;您的发布商店在很长一段时间内都不会过期(如果您遵循 Google 的指南)。

【讨论】:

【解决方案3】:

调试和发布密钥库的功能是等效的。调试密钥库由 SDK 自动生成,但您可以将其替换为您喜欢的任何密钥库(我实际上这样做是为了在我的几台开发机器上拥有相同的调试密钥库)。

因此,在最一般的情况下,发布密钥库和调试密钥库之间没有区别。

当然,您可以将发布公钥嵌入到您的应用程序中,并检测您的应用程序未使用适当的私有发布密钥签名的情况。如果是这样,假设您在由调试密钥库签名的应用程序中。但我不能说这是一个理想的解决方案,因为它的依赖性不那么明显。

【讨论】:

  • 任何代码开始?我在想有一个类似的方法,只是不知道在哪里可以找到相关的功能......
猜你喜欢
  • 2012-01-19
  • 2013-06-27
  • 2012-08-14
  • 1970-01-01
  • 2013-05-13
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 1970-01-01
相关资源
最近更新 更多