2013-05-05 16 views
12

Googleマップv2ライブラリで使用するデバッグキーを取得する方法とリリースキーを取得する方法はわかりました。現在、私のマニフェストファイルの関連するセクションは次のようになります。Android Googleマップv2 - デバッグキーとリリースキー

<!-- 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

新しいのGradleベースのビルドシステムがこの分野で役立つはずです。あなたは、デバッグとプロダクションのストリングリソースを定義し、それらのいずれかにあなたのAPIキーを保持することができるはずです。 – CommonsWare

+0

リリースモードでGoogleマップを実現するための手順を教えてください。私はたくさんのことを試みましたが、私はこれを解決する方法を理解できませんでした。 – guisantogui

+0

答えはMichal氏によって与えられました。同じ鍵に対して複数の指紋+パッケージ名を指定することは可能です。 Googleドキュメントは非常に正確です:https://developers.google.com/maps/documentation/android-api/signup –

答えて

33

バージョン2 APIでは、リリースとデバッグに同じキーを使用できます。あなたのGoogleのAPIのコンソールであなたの許可アンドロイドアプリを編集し、それぞれの行にあなたのデバッグ/リリースキー、そしてあなたのアプリ名を入れてください。複数の行を使用することができ、両方のキーで動作します。

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

はちょうどあなたの実際のキーと <debug_key><release_key>を置き換える:デバッグビルドとリリースビルドのための

+1

素晴らしい!実際、私はAPiコンソールでこの小さな表示に気づいていませんでした。 1行に1つのSHA1証明書フィンガープリントとパッケージ名(セミコロンで区切られます)が1つあります。 おかげでMichal。 –

+0

リリースタイプごとに異なるAPIキーを使用することをおすすめします。私は安全性に関するものであっても利便性ではありませんでした。 –

3

別のGoogleマップAPIキーがbuild.gradleに定義することができます。

そしての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

関連する問題