以编程方式检测调试密钥库或释放密钥库

时间:2011-06-15 13:16:28

标签: android google-maps keystore

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

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

必须有办法实现此目的,因为Google地图可以检测用于编译应用程序的密钥库(启用或禁用地图)。

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

我不知道谷歌地图如何做到这一点,但这里有一个可能的选择:您可以使用包管理器提取用于签署APK的证书,并将其与您已知的版本密钥库进行比较。我建议将它与此而不是调试密钥库进行比较,因为调试存储每年到期;您的发布商店将在相当长的时间内过期(如果您遵循Google的指导原则)。

答案 2 :(得分:0)

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

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

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