2013-05-05 94 views
12

我很清楚如何獲取用於Google Maps v2庫的調試密鑰,以及如何獲取發佈密鑰。目前我清單文件的相關部分如下所示:Android Google Maps v2 - 調試密鑰vs發佈密鑰

<!-- Debug --> 
<meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="[my debug key here]"/> 

<!-- Release   
<meta-data 
    android:name="com.google.android.maps.v2.API_KEY" 
    android:value="[my release key here]"/> 
--> 

相關密鑰未註釋,另一個註釋。

任何人都可以指出一個舒適的方式來避免這種煩人的評論/取消註釋這些片清單文件每次調試,而不是發佈版本是必要的?

+0

新的基於搖籃建造系統應該在這方面有所幫助。您應該能夠定義調試與生產字符串資源,並將API密鑰保存在其中一箇中。 – CommonsWare 2013-05-05 13:54:41

+0

請問,你能否提供我實現谷歌地圖工作在發佈模式的步驟?我嘗試了很多東西,但我無法弄清楚如何解決這個問題。 – guisantogui 2015-10-07 10:28:50

+0

答案是由Michal給出的:可以爲同一個鍵指定多個指紋+包名。 Google文檔似乎對我來說非常準確:https://developers.google.com/maps/documentation/android-api/signup – 2015-10-10 16:26:51

回答

33

對於版本2的API,您可以使用相同的密鑰進行發佈和調試。在您的谷歌API的控制檯編輯允許的Android應用程序,並在每行放置您的調試/釋放鍵,然後您的應用程序的名稱。你可以使用多行,然後它將與兩個鍵一起工作。

+1

太棒了!事實上,我沒有注意到APi控制檯中的這個小指示: 每行一個SHA1證書指紋和包名(用分號分隔)。 謝謝Michal。 – 2013-05-05 15:47:53

+0

仍然建議每個發佈類型使用不同的API密鑰,不是嗎?我雖然是關於安全,而不是關於方便。 – 2015-03-22 19:34:26

3

不同的調試版本和發佈版本谷歌地圖API密鑰可以在的build.gradle定義:

... 
android { 
    ... 
    buildTypes { 
     debug { 
      resValue "string", "google_maps_api_key", "<debug_key>" 
      ... 
     } 
     release { 
      resValue "string", "google_maps_api_key", "<release_key>" 
      ... 
     } 
    } 
} 

只需更換<debug_key><release_key>與您的實際鍵。

,並參考該資源的價值在AndroidManifest.xml中

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

該解決方案在下面的堆棧溢出問題也描述:

Manage Google Maps API Key with Gradle in Android Studio

+0

如果您有多種語言的本地化,則無法將字體資源中的清單值保存。 Studio不允許生成發佈版本。 – Lera 2016-11-25 08:00:29