2013-06-19 4 views
38

मैं गूगल मैप्स एपीआई के साथ काम कर रहा हूँ के रूप में, मैं ग्रहण में एक कस्टम डिबग कुंजी (है कि वास्तव में मेरी उत्पादन की कुंजी है)एंड्रॉइड स्टूडियो में ग्रहण "कस्टम डीबग कीस्टोर" के बराबर क्या है?

यह हेरफेर मुझे मैप्स के लिए एक ही API कुंजी का उपयोग करने की अनुमति दी और साथ काम करने के लिए इस्तेमाल किया गया है मेरी डीबग और रिलीज बिल्ड में अधिकांश Google Play सेवाएं (ऐप बिलिंग में)।

यह वास्तव में सुविधाजनक था क्योंकि मैनिफेस्ट में कुंजी बदलने की कोई आवश्यकता नहीं थी।

enter image description here

दुर्भाग्य से, एंड्रॉयड स्टूडियो में प्रवास के साथ, मैं इस सुविधा याद आ रही है।

कोई विचार जहां मैं यह विकल्प वापस पा सकता हूं?

बहुत बहुत धन्यवाद।

उत्तर

64

आप अपनी build.gradle फ़ाइल में एक कीस्टोर परिभाषित करते हैं। हस्ताक्षर विन्यास यहाँ अनुभाग देखें:

android { 
    signingConfigs { 
     debug { 
      storeFile file("your.keystore") 
     } 
    } 
} 

हालांकि, अगर आप वास्तव में डिबग के लिए दो अलग-अलग keystores का उपयोग करना चाहिए और जारी विन्यास: https://developer.android.com/studio/build/index.html

आपके मामले में, आप डिबग संस्करण के लिए कीस्ट्रोक को फिर से परिभाषित करना चाहते हैं।

+7

बहुत धन्यवाद, मैं कोशिश करूँगा। मुझे अलग-अलग चाबियों का उपयोग क्यों करना चाहिए? परिणाम और मुझे प्राप्त समय की मात्रा बहुत बड़ी है ... –

+0

क्या डीबग कीस्टोर के पासवर्ड के बारे में कोई बाधा है? –

+0

क्या होगा अगर मैं डीबग में प्रत्येक स्वाद के लिए एक विशिष्ट कीस्टोर चाहता हूं? –

5

आप debug.keystoreके लिए अपनी परियोजनास्वतंत्र रूप से निर्दिष्ट कर सकते हैं। निम्नलिखित छवियों के साथ
दो कदम: (एंड्रॉयड स्टूडियो v0.5.2)
चरण 1: project structure का बटन क्लिक करें। Step 1

चरण 2: debug.keystore इस प्रकार जोड़ें। enter image description here

+1

एंड्रॉइड स्टूडियो v0.8 में आशा है कि यह स्क्रीन उपलब्ध नहीं है। केवल एक ही रास्ता बनाया जा सकता है। अगर मैं गलत pls अगर सही है। – arvindwill

24

हाल एंड्रॉयड स्टूडियो पर 0.8.9 आप एक तरह से पर बेहतर जगह यह मिलेगा:

File->Project Structure 
  1. पर "साइन इन करना" टैब
  2. अपने डिबग/रिलीज के लिए यह चयन एक कीस्ट्रोक जोड़े "प्रकार बनाएं"।
  3. यकीन है कि अन्य नाम अपना कुंजी के साथ matchs बनाने स्वचालित रूप से "लागू करें" पर

यह Gradle सामान बनाता है syncrhonizes (Keytool -List -v अपने अन्य नाम से पता चलता है) और एक आकर्षण की तरह तुरंत काम किया।

+2

ध्यान दें कि आपको सभी फ़ील्ड निर्दिष्ट करने की आवश्यकता नहीं है। डीबग कुंजी के लिए, आप डिफ़ॉल्ट (उपनाम 'एंड्रोइडबग्की' और कीस्टोर/कुंजी पासवर्ड 'एंड्रॉइड' पर सेट कर सकते हैं) को छोड़ सकते हैं। रिलीज कुंजी के लिए, हो सकता है कि आप वहां अपना पासवर्ड दर्ज नहीं करना चाहें क्योंकि इसे build.gradle में स्पष्ट रूप से संग्रहीत किया जाएगा जो आपके डीवीसीएस पर समाप्त होता है। – ralfoide

17

हाय आप इस सामान के सभी कड़ी कोड के लिए जाना है, तो आसान चरणों के नीचे के लिए जाना नहीं चाहते, तो

->Your project 
    ->Your Module 
    ->Right click on your module 
    ->go to open module settings 
     ->Go to Signing section 
     ->Specify all the attribute here and browse your Custom debug key in Store File 

तो फिर तुम कोड है, जिसमें एंड्रॉयड स्टूडियो द्वारा ऑटो बनाने होगा नीचे मिलेगा निर्माण।Gradle

signingConfigs { 
    debug { 
     storeFile file('custom_debug_keystore') 
     keyAlias 'androiddebugkey' 
     keyPassword 'android' 
     storePassword 'android' 
    } 
} 

नोट:

1) एक कृपया कोड में .keystore का उपयोग नहीं करते मैन्युअल आप मैन्युअल कॉन्फ़िगरेशन के लिए जाना

2) कृपया सही उर्फ ​​और पासवर्ड निर्दिष्ट

8

यहाँ है चरण-दर-चरण जो मैंने अपनी दोनों चाबियों को gradle.build फ़ाइल से बाहर ले जाने के लिए लिया है, जो किसी भी बिल्ड या रिपोजिटरी में शामिल नहीं होगा।

1)एक gradle.properties बनाएं (यदि आपके पास पहले से कोई नहीं है)।

इस फ़ाइल के लिए स्थान अपने ओएस पर निर्भर करता है:

/home/<username>/.gradle/ (Linux) 
    /Users/<username>/.gradle/ (Mac) 
    C:\Users\<username>\.gradle (Windows) 

2) yourprojectname.properties फाइल करने के लिए एक प्रवेश इशारा जोड़ें। (Windows के लिए उदाहरण)

yourprojectname.properties=c:\\Users\\<username>\\signing\\yourprojectname.properties 

3) स्थान में yourprojectname.properties फ़ाइल बनाएँ आप निम्नलिखित जानकारी के साथ चरण 2 में बताया:

keystore=C:\\path\\to\\keystore\\yourapps.keystore 
keystore.password=your_secret_password 

4) बात करने के लिए अपने gradle.build फ़ाइल को संशोधित करें चर का उपयोग करने के लिए yourprojectname.properties फ़ाइल पर।

if(project.hasProperty("yourprojectname.properties") 
     && new File(project.property("yourprojectname.properties")).exists()) { 

    Properties props = new Properties() 
    props.load(new FileInputStream(file(project.property("yourprojectname.properties")))) 

    android { 
     signingConfigs { 
      release { 
       keyAlias 'release' 
       keyPassword props['keystore.password'] 
       storeFile file(props['keystore']) 
       storePassword props['keystore.password'] 
      } 
      debug { 
       keyAlias 'debug' 
       keyPassword props['keystore.password'] 
       storeFile file(props['keystore']) 
       storePassword props['keystore.password'] 
      } 
     } 
     compileSdkVersion 19 
     buildToolsVersion "20.0.0" 
     defaultConfig { 
      applicationId "your.project.app" 
      minSdkVersion 16 
      targetSdkVersion 17 
     } 
     buildTypes { 
      release { 
      } 
     } 
    } 

} 

dependencies { 
    ... 
} 

5) का आनंद लें! अब आपकी सभी चाबियाँ निर्देशिका की जड़ से बाहर होंगी और फिर भी आपको प्रत्येक बिल्ड के लिए स्वचालन की खुशी है।

आप "सहारा" चर के बारे में अपनी gradle.build फ़ाइल में कोई त्रुटि मिलती है यह है क्योंकि आप "एंड्रॉयड {}" बहुत पहले if स्थिति है, जिसमें props चर सौंप दिया जाता है के अंदर ब्लॉक को क्रियान्वित नहीं कर रहे हैं यदि ऐसा है तो बस ले जाने के संपूर्ण एंड्रॉइड {...} अनुभाग उस स्थिति में जिसमें प्रोपर्स वैरिएबल असाइन किया गया है, फिर पुन: प्रयास करें।

मैंने here और here मिली जानकारी से इन चरणों को एक साथ पाई।

+0

यह पूर्ण सही उत्तर होना चाहिए – Plugie

4

कुंजीस्टोर build.gradle में होने की जरूरत है, उदाहरण के इस प्रकार है:

android{ 
    signingConfigs { 
     release { 
      storeFile file('/path/platform.keystore') 
      storePassword 'android' 
      keyAlias 'androiddebugkey' 
      keyPassword 'android' 
     } 
    } 
    ... 
    buildTypes { 
     release { 
      signingConfig signingConfigs.release 
     } 
    } 

ग्रहण वास्तव में एक पासवर्ड या अन्य नाम के लिए नहीं पूछा, लेकिन Gradle करता है। मेरा मानना ​​है कि ग्रहण ने बस यह माना था कि यह पासवर्ड था: एंड्रॉइड और उपनाम: एंड्रॉइडबगकी। यह आपके कीस्टोर के लिए सच नहीं हो सकता है लेकिन मैं इसे इस तरह की कोशिश करूँगा।

आप पासवर्ड पता है, लेकिन आप के बारे में सुनिश्चित उर्फ ​​ आप भी उर्फ ​​प्राप्त करने के लिए निम्न आदेश चला सकते हैं नहीं कर रहे हैं: keytool -list -keystore /path/platform.keystorelink

0

के रूप में बताया, तो आप के लिए Gradle फ़ाइल का उपयोग कर सकते इसे निर्दिष्ट करें। मुझे पथ के हिस्से के रूप में होम फ़ोल्डर का उपयोग करने के लिए बहुत सुविधाजनक पाया गया। एक टीम के भीतर काम करते समय यह आसान बनाता है। यहां मेरा सुझाव दिया गया है:

android { 
    signingConfigs { 
     debug { 
      storeFile file(System.properties['user.home']+"/.android/custom.debug.keystore") 
     } 
    } 
} 
संबंधित मुद्दे