0

我在两个不同的环境中开发一个 android 应用程序,并且每个 SDK 都有不同的 Maps API 密钥。我没有尝试将一个 debug.keystore 文件复制到另一个位置,但如果有一种方法可以根据开发环境选择性地替换文件中的密钥,我会更喜欢。密钥在 XML 文件中使用(尽管应该有一种以编程方式设置它的方法)。

4

4 回答 4

2

这是我们所做的:

我们将 Maps 键保存在一个名为 assets/environment.properties 的文件中。默认情况下,它包含开发密钥。在应用程序启动期间的运行时,我们将该文件中的所有值放入一个哈希中,并从该文件中的键手动构建我们的地图视图(您可以将 API 键传递给MapView构造函数)。

每当我们发布新版本时,我们的构建系统都会将不同的模板文件复制到 environment.properties,该文件包含生产密钥。一旦通过使用版本控制系统(我们使用 Git)丢弃更改来构建应用程序,此步骤将被反转。这一切都是自动的。

到目前为止,这对我们来说非常有效。

于 2012-01-03T09:56:25.757 回答
2

您可以使用 Maps 密钥注册多个证书,因此您不再需要使用多个密钥。见https://stackoverflow.com/a/13881624/1433372

“每行一个 SHA1 证书指纹和包名称(用分号分隔)。示例:45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2 :56:26:A0:E0;com.example 45:B6:E4:6F:36:AD:1A:98:94:B4:02:66:2B:12:17:F1:56:26:A0: E0;com.example"

于 2014-03-28T13:09:49.220 回答
1

您可以在 ant 中使用属性替换器,或者如果您在那里使用相同的 maven。

于 2012-01-03T09:49:43.150 回答
0

如果您想以编程方式设置它,您可以将 API 密钥传递给MapView 构造函数。

于 2012-01-03T09:30:42.107 回答