मुझे सर्किल सीआई के माध्यम से gradle.properties
पर क्रेडेंशियल्स/एपीआई कुंजी जोड़ने का कोई तरीका मिला है। यह एंड्रॉइड प्रोजेक्ट को gradle.properties
को स्थानीय और CircleCI बिल्ड के लिए क्रेडेंशियल्स के संदर्भ में संदर्भित करने की अनुमति देता है।
पहला कदम, अपने सर्किल सीआई परियोजना सेटिंग्स में पर्यावरण चर के रूप में अपने क्रेडेंशियल स्टोर करें, जिन्हें निजी होने की गारंटी है। सर्किल सीआई जीयूआई में, अपनी प्रोजेक्ट पर जाएं, फिर ऊपरी दाएं कोने में "प्रोजेक्ट सेटिंग्स" का चयन करें। बाईं तरफ के मेनू में "पर्यावरण चर" पर क्लिक करें जो "ट्वीक्स" हेडर के नीचे है। यहां आप अपने क्रेडेंशियल्स को नाम मूल्य जोड़ी के रूप में जोड़ सकते हैं।
अगला, अपने एंड्रॉइड प्रोजेक्ट में एक बैश स्क्रिप्ट बनाएं जो आपके सर्किल सीआई पर्यावरण चर को स्थानीय gradle.properties
फ़ाइल में लिख देगा। मैंने ऐसी लिपि और posted it here as gist लिखा है।
function copyEnvVarsToGradleProperties {
GRADLE_PROPERTIES=$HOME"/.gradle/gradle.properties"
export GRADLE_PROPERTIES
echo "Gradle Properties should exist at $GRADLE_PROPERTIES"
if [ ! -f "$GRADLE_PROPERTIES" ]; then
echo "Gradle Properties does not exist"
echo "Creating Gradle Properties file..."
touch $GRADLE_PROPERTIES
echo "Writing TEST_API_KEY to gradle.properties..."
echo "TEST_API_KEY=$TEST_API_KEY_ENV_VAR" >> $GRADLE_PROPERTIES
fi
}
यह स्क्रिप्ट केवल एक सर्किल सीआई निर्माण के दौरान कहा जाता है, और नहीं स्थानीय बनाता दौरान: यहाँ विधि है जो काम करता है। , अपने circle.yml फ़ाइल में एक पूर्व प्रक्रिया निर्भरता के रूप में इस स्क्रिप्ट आह्वान ताकि आपके gradle.properties
वास्तविक Gradle निर्माण से पहले लिखा है शुरू होता है:
dependencies:
pre:
- source environmentSetup.sh && copyEnvVarsToGradleProperties
आप आप के रूप में सिर्फ build.gradle में एपीआई कुंजी का उपयोग करने के लिए जारी रहेगा हमेशा:
buildConfigField("String", "THIS_TEST_API_KEY", "\"" + TEST_API_KEY + "\"")
स्रोत
2016-02-16 19:05:36
थेरेस कोई रास्ता नहीं gradle.properties बजाय env चर से गुण पढ़ने के लिए? क्योंकि यदि आपको एक वेरिएबल को जोड़ने या निकालने की ज़रूरत है तो बहुत सी चीजें संपादित होती हैं ... – Caipivara
अच्छा समाधान! छूने से पहले मुझे 'mkdir ~/.gradle -p' जोड़ना पड़ा क्योंकि वे अभी भी' .gradle' निर्देशिका नहीं बनाते हैं। – WindRider
मैं इस https://gist.github.com/danielgomezrico/461bf74a24dd5efd28abef1bebc0f05d – Caipivara