2013-05-05 3 views
12

Мне ясно, как получить отладочный ключ для использования с библиотекой Google Maps v2, а также как получить ключ для освобождения. В настоящее время соответствующий раздел моего файла манифеста выглядит следующим образом:Android Google Maps v2 - Отладочная клавиша vs Release key

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

Ответ был задан Михалом: для одного и того же ключа можно указать несколько отпечатков пальцев + имена пакетов. Документация Google кажется очень точной для меня: https://developers.google.com/maps/documentation/android-api/signup –

ответ

33

С помощью API версии 2 вы можете использовать тот же ключ для выпуска и отладки. В консоли google api отредактируйте свои разрешенные приложения для Android и на каждой строке введите ключ отладки/выпуска, а затем название вашего приложения. Вы можете использовать несколько строк, тогда он будет работать с обоими клавишами.

+1

Отлично! На самом деле я не заметил этого небольшого указания в консоли APi: Один отпечаток пальца сертификата SHA1 и имя пакета (разделенное точкой с запятой) на строку. Спасибо, Михал. –

+0

По-прежнему рекомендуется использовать разные ключи API для каждого типа выпуска, не так ли? Я, хотя речь шла о безопасности, а не о удобстве. –

3

Различные Google Map 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