खोज…


साइन इन कॉन्फ़िगरेशन के साथ build.gradle कॉन्फ़िगर करें

आप build.gradle फ़ाइल में build.gradle साइन करने के लिए हस्ताक्षर कॉन्फ़िगरेशन को परिभाषित कर सकते हैं।

आप परिभाषित कर सकते हैं:

  • storeFile : कीस्टोर फाइल
  • storePassword : कीस्टोर पासवर्ड
  • keyAlias : एक प्रमुख उपनाम नाम
  • keyPassword : एक मुख्य उपनाम पासवर्ड

आपको साइनिंग कॉन्फ़िगरेशन बनाने के लिए साइनिंग signingConfigs ब्लॉक को परिभाषित करना signingConfigs :

android {
    signingConfigs {

        myConfig {
            storeFile file("myFile.keystore")
            storePassword "myPasswork"
            keyAlias "aKeyAlias"
            keyPassword "myAliasPassword"
        }
    }
    //....
}

फिर आप इसे एक या अधिक बिल्ड प्रकारों को असाइन कर सकते हैं

android {

    buildTypes {
        release {
            signingConfig signingConfigs.myConfig
        }
    }
}

किसी बाहरी फ़ाइल में हस्ताक्षर कॉन्फ़िगरेशन को परिभाषित करें

आप एक के रूप में एक बाहरी फ़ाइल में हस्ताक्षर करने के विन्यास को परिभाषित कर सकते signing.properties अपनी परियोजना के रूट निर्देशिका में।

उदाहरण के लिए आप इन कुंजियों को परिभाषित कर सकते हैं (आप अपने पसंदीदा नामों का उपयोग कर सकते हैं):

STORE_FILE=myStoreFileLocation    
STORE_PASSWORD=myStorePassword
KEY_ALIAS=myKeyAlias
KEY_PASSWORD=mykeyPassword

फिर अपनी build.gradle फ़ाइल में:

android {

    signingConfigs {
        release
    }
    
     buildTypes {
        release {
            signingConfig signingConfigs.release
        }
     }
}

फिर आप बिल्ड प्रक्रिया में ग्रेडल मुद्दों से बचने के लिए कुछ चेक पेश कर सकते हैं।

//------------------------------------------------------------------------------
// Signing
//------------------------------------------------------------------------------
def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()) {

    if (props != null && props.containsKey('STORE_FILE') && props.containsKey('STORE_PASSWORD') &&
            props.containsKey('KEY_ALIAS') && props.containsKey('KEY_PASSWORD')) {

        android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
        android.signingConfigs.release.storePassword = props['STORE_PASSWORD']
        android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
        android.signingConfigs.release.keyPassword = props['KEY_PASSWORD']
    } else {
        android.buildTypes.release.signingConfig = null
    }
} else {
    android.buildTypes.release.signingConfig = null
}

साइनिंग कॉन्फ़िगरेशन सेटिंग वातावरण चर को परिभाषित करें

आप पर्यावरण चर चर पर हस्ताक्षर करने की जानकारी संग्रहीत कर सकते हैं।
इन मानों को System.getenv("<VAR-NAME>") एक्सेस किया जा सकता है

अपने build.gradle आप परिभाषित कर सकते हैं:

signingConfigs {
    release {
        storeFile file(System.getenv("KEYSTORE"))
        storePassword System.getenv("KEYSTORE_PASSWORD")
        keyAlias System.getenv("KEY_ALIAS")
        keyPassword System.getenv("KEY_PASSWORD")
    }
}

साइन अप कॉन्फ़िगरेशन को एक अलग श्रेणी फ़ाइल में परिभाषित करें

बाहरी कॉन्फ़िगरेशन को जोड़ने का सबसे सरल और साफ तरीका एक अलग ग्रेड फ़ाइल के माध्यम से है

build.gradle

apply from: './keystore.gradle'
android{
    signingConfigs {
        release {
            storeFile file(keystore.storeFile)
            storePassword keystore.storePassword
            keyAlias keystore.keyAlias
            keyPassword keystore.keyPassword
        }
    }
}

keystore.gradle

ext.keystore = [
    storeFile    : "/path/to/your/file",
    storePassword: 'password of the store',
    keyAlias     : 'alias_of_the_key',
    keyPassword  : 'password_of_the_key'
]

आपकी फ़ाइल प्रणाली में कीस्टोरी.ग्रेड फ़ाइल कहीं भी मौजूद हो सकती है, आप अपनी श्रेणी के शीर्ष पर या अपनी मुख्य परियोजना बिल्ड.ग्रेड फ़ाइल के अंत में apply from: '' को apply from: '' अंदर अपना स्थान निर्दिष्ट कर सकते हैं।

आमतौर पर यह एक अच्छा विचार है कि इस फाइल को वर्जन कंट्रोल सिस्टम से अनदेखा करें जैसे कि यह आपके रेपो के अंदर स्थित है।

यह भी एक अच्छा विचार है कि एक नमूना प्रदान करना है keystore.gradle.sample जो परियोजना में प्रवेश करने वाले डेवलपर्स का नाम बदलकर उनकी विकास मशीन पर पॉपुलेट करेगा। यह फ़ाइल हमेशा रेपो के अंदर सही स्थान पर निहित होगी।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow