Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 基于开发环境更改Maps API密钥_Android_Google Maps_Development Environment_Api Key - Fatal编程技术网

Android 基于开发环境更改Maps API密钥

Android 基于开发环境更改Maps API密钥,android,google-maps,development-environment,api-key,Android,Google Maps,Development Environment,Api Key,我在两个不同的环境中开发android应用程序,每个SDK都有不同的Maps API密钥。我还没有尝试将一个debug.keystore文件复制到另一个位置,但我更希望有一种方法可以根据开发环境选择性地替换文件中的密钥。密钥在XML文件中使用(尽管应该有一种以编程方式设置它的方法).如果要以编程方式设置,则可以将API键传递给。如果要以编程方式设置,则可以将API键传递给。可以在ant中使用属性替换器,或者如果在那里使用maven,则可以在那里使用属性替换器。可以在ant中使用属性替换器,或者如

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

如果要以编程方式设置,则可以将API键传递给。

如果要以编程方式设置,则可以将API键传递给。

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

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

我们:

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

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

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

以下是我们的工作:

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

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


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

您可以使用on Maps密钥注册多个证书,这样您就不必再使用多个密钥。看


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

您可以使用on Maps密钥注册多个证书,这样您就不必再使用多个密钥。看


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

重要的一点不是设置它,但是基于开发环境设置它。重要的不是设置它,而是基于开发环境设置它。这似乎是最好的方法-你有任何文章或例子吗?设置类似这样的东西并使其与现有IDE一起工作似乎文档不足,我对Ant没有经验。我实际上在考虑写一篇关于构建设置的博客文章,因为它变得相当复杂,而且我们可能也解决了其他人可能遇到的许多问题(处理一组不同的依赖项,如上游项目、JAR和Android库项目、用于分析的字节码注入、用于字节码优化的ProGuard、自动将构建拆分为特定于配置的APK以供发布等。pp).我们使用Maven实现所有这些,尽管我打算在某个时候将所有内容重新移植到Gradle(目前太不稳定)尽管如此,我实际上对Maven没有太多的经验,我认为我们做的一些事情也不是很专业。例如,我们接触了一个基于Groovy的构建助手,使用GMaven编写和复制文件,而不是处理更复杂的Maven-resources-plugin。这似乎是最好的方法-你有文章吗或者示例?设置类似的内容并使其与现有IDE一起工作似乎文档不足,我对Ant没有经验。我实际上正在考虑写一篇关于构建设置的博客文章,因为它变得相当复杂,而且我们可能也解决了其他人可能遇到的许多问题(处理一组不同的依赖项,如上游项目、JAR和Android库项目、用于分析的字节码注入、用于字节码优化的ProGuard、自动将构建拆分为特定于配置的APK以供发布等。pp).我们使用Maven实现所有这些,尽管我打算在某个时候将所有内容重新移植到Gradle(目前太不稳定).话虽如此,实际上我对Maven没有太多的经验,我认为我们做的一些事情也不是很专业。例如,我们接触了一个基于Groovy的构建助手,使用GMaven编写和复制文件,而不是处理更复杂的Maven资源插件。