gpt4 book ai didi

google-maps - 如何覆盖 Xamarin Android Manifest 中的键

转载 作者:行者123 更新时间:2023-12-02 03:55:54 26 4
gpt4 key购买 nike

我正在使用this在 Xamarin 中使用 map 的指南。

它说我应该使用不同的 key 值

<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="AbCdEfGhIjKlMnOpQrStUvWValueGoesHere" />

用于调试和发布版本;调试版本应使用包含来自 debug.keystore 的 SHA-1 证书的 API key ,该证书具有众所周知的默认密码。

在实时模式下,我应该使用自定义 keystore 文件中的 SHA-1 证书,其密码只有我知道。实时 API key 和 SHA-1 证书在实时 APK 中有效,但在调试版本中无效。我想这是有道理的。我应该拥有一个用于调试的 Google Android API key 和一个用于生产的 key 。

我不想做的是将其放在我的 AndroidManifest.xml 文件中:

<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="<My Debug API Key>" />
<!--<meta-data android:name="com.google.android.maps.v2.API_KEY"
android:value="<My Release API Key>" />-->

...根据我是进行调试还是发布构建来更改注释掉的部分。是否有更有效的方法来执行此操作(例如 ASP.NET 应用程序中的配置转换)?

我已经进行了一些搜索,并且有一些自动应用的调试覆盖,但似乎我对这个过程没有太多的控制。

最佳答案

您可以使用程序集级别 MetaData 属性并通过使用条件编译来定义 Manifest 的 Application 元素中的标记:

#if DEBUG
[assembly: MetaData("com.google.android.maps.v2.API_KEY", Value = "DebugKEYValue")]
#else
[assembly: MetaData("com.google.android.maps.v2.API_KEY", Value = "ReleaseKEYValue")]
#endif

根据构建类型,这将导致:

<application android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:name="android.app.Application" android:debuggable="true">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="DebugValue" />

或者:

<application android:allowBackup="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:name="android.app.Application">
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="ReleaseKEYValue" />

关于google-maps - 如何覆盖 Xamarin Android Manifest 中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43948190/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com