2013-05-05 10 views
12

यह मुझे स्पष्ट है कि Google मानचित्र v2 लाइब्रेरी के साथ उपयोग के लिए डीबग कुंजी कैसे प्राप्त करें, और रिलीज़ कुंजी कैसे प्राप्त करें। वर्तमान में मेरे मैनिफ़ेस्ट फ़ाइल के प्रासंगिक अनुभाग इस तरह दिखता है:एंड्रॉइड 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]"/> 
--> 

प्रासंगिक प्रमुख uncommented है, एक दूसरे को टिप्पणी की है।

क्या कोई भी रिलीज संस्करण की बजाय हर बार एक डीबग मैनिफेस्ट फ़ाइल के इन टुकड़ों को टिप्पणी/अनमोल करने की इस परेशानी से बचने के लिए एक आरामदायक तरीका इंगित कर सकता है?

+0

नई Gradle आधारित निर्माण प्रणाली को इस क्षेत्र में मदद करनी चाहिए। आप डीबग बनाम उत्पादन स्ट्रिंग संसाधनों को परिभाषित करने में सक्षम होना चाहिए, और उनमें से एक में अपनी एपीआई कुंजी पकड़ें। – CommonsWare

+0

कृपया, क्या आप मुझे रिहाई मोड पर काम कर रहे Google मानचित्र प्राप्त करने के लिए कदम प्रदान कर सकते हैं? मैंने बहुत सारी चीजों की कोशिश की है, लेकिन मैं यह समझ नहीं पाया कि इसे कैसे हल किया जाए। – guisantogui

+0

उत्तर मीकल द्वारा दिया गया था: एक ही कुंजी के लिए एकाधिक फिंगरप्रिंट + पैकेज नाम निर्दिष्ट करना संभव है। Google प्रलेखन मेरे लिए बहुत सटीक लगता है: https://developers.google.com/maps/documentation/android-api/signup –

उत्तर

33

संस्करण 2 एपीआई के साथ आप रिलीज और डीबग के लिए एक ही कुंजी का उपयोग कर सकते हैं। अपने Google एपीआई कंसोल में अपने अनुमत एंड्रॉइड ऐप्स संपादित करें और प्रत्येक पंक्ति पर अपनी डीबग/रिलीज कुंजी डालें, और फिर अपना ऐप नाम दें। आप कई लाइनों का उपयोग कर सकते हैं, फिर यह दोनों चाबियों के साथ काम करेगा। डीबग बिल्ड और रिहाई का निर्माण के लिए

+1

बढ़िया! असल में मैंने एपीआई कंसोल में इस छोटे संकेत को नहीं देखा था: एक SHA1 प्रमाणपत्र फिंगरप्रिंट और पैकेज नाम (प्रति अर्धविराम से अलग) प्रति पंक्ति। धन्यवाद मीकल। –

+0

अभी भी रिलीज प्रकार के विभिन्न एपीआई कुंजी का उपयोग करने की अनुशंसा की जाती है, है ना? हालांकि यह सुरक्षा के बारे में था, सुविधा के बारे में नहीं। –

3

विभिन्न गूगल मानचित्र एपीआई कुंजी 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

यदि आपके पास कई भाषाओं में स्थानीयकरण है, तो मैनिफेस्ट मान स्ट्रिंग संसाधनों में नहीं रखा जा सकता है। स्टूडियो रिलीज बिल्ड उत्पन्न करने की अनुमति नहीं देगा। – Lera

संबंधित मुद्दे