6

के अंदर वैश्विक पर्यावरण चर सेट करें मैं निरंतर एकीकरण करने के लिए जेनकींस का उपयोग कर रहा हूं। मेरे पास बहुत सी नौकरियां हैं जिनमें एक ही कॉन्फ़िगरेशन कोड है। मैं इसे एक सामान्य स्क्रिप्ट फ़ाइल में खींचने के बीच में हूं कि मैं प्री और पोस्ट बिल्ड करना चाहता हूं।एक्सकोड बिल्ड चरण रन स्क्रिप्ट

मैं इस स्क्रिप्ट के भीतर कुछ पर्यावरण चर सेट करने के तरीके को समझने में असमर्थ हूं, ताकि दोनों एक्सकोड बिल्ड कमांड, और जेनकींस बिल्ड दोनों उन्हें देख सकें।

क्या किसी को पता है कि यह संभव है?

+0

शायद यह उत्तर मदद कर सकता है - http://stackoverflow.com/a/32743908/67824। यह आपको वैश्विक पर्यावरण चर को परिभाषित करने की अनुमति नहीं देता है, लेकिन यह आपको xcodeproj बिल्ड सेटिंग्स को बदलने की अनुमति देता है, जो संभवतः आप पर्यावरण चर के लिए चाहते हैं (कम से कम यह मेरे लिए मामला है)। –

उत्तर

5

आप जो भी पूछते हैं वह करना संभव नहीं है। एक प्रक्रिया किसी अन्य प्रक्रिया के पर्यावरण चर को बदल नहीं सकती है। पूर्व और पोस्ट और वास्तविक निर्माण चरणों को विभिन्न प्रक्रियाओं में चलाया जाता है।

लेकिन आप एक ऐसी स्क्रिप्ट बना सकते हैं जो सामान्य पर्यावरण चर सेट करता है और आपके सभी बिल्डों के बीच उस स्क्रिप्ट को साझा करता है।

प्रथम लिपि में आदेश पर अमल करने के लिए अपने खोल कहेंगे और फिर फोन xcodebuild:

# Note the dot in the beginning of the next line. It is not a typo. 
. set_environment.sh 
xcodebuild myawesomeapp.xcodeproj 

स्क्रिप्ट ऐसा दिखाई दे सकता:

export VARIABLE1=value1 
export VARIABLE2=value2 

अपने काम वास्तव में किस प्रकार साझा करेंगे स्क्रिप्ट आपके पर्यावरण पर निर्भर करती है और मामले का उपयोग करती है। आप

  • जगह जेनकींस मेजबान पर कुछ प्रसिद्ध स्थान या
  • जगह में स्क्रिप्ट संस्करण नियंत्रित स्रोत पेड़ में स्क्रिप्ट अपने सभी कार्य एक ही भंडार या
  • जगह में स्क्रिप्ट साझा कर सकते हैं, तो अपने स्वयं का एक भंडार और जेनकिन्स का निर्माण करना जो स्क्रिप्ट को एक कलाकृतियों के रूप में संग्रहित करता है। स्क्रिप्ट नौकरी के कलाकृतियों से लिपि की एक प्रति प्राप्त करने के लिए अन्य सभी नौकरियां कॉपी आर्टिफैक्ट प्लगइन का उपयोग करेंगी।
+0

मुझे नहीं लगता कि यह कैसे मदद करता है। कारण (और बहुत से अन्य) इस पर ध्यान दे रहे हैं, एक बिल्ड-स्टेप की क्षमता पर्यावरण चर को स्थापित करने के माध्यम से अगले बिल्ड-चरणों को प्रभावित करती है। मेरे मामले में, एक पूर्वनिर्धारित प्रोसेसर मैक्रो भी सेट करना पर्याप्त होगा, लेकिन आपका जवाब न तो करता है। या हो सकता है कि आप का मतलब है कि एक निश्चित बिल्ड-स्टेप को स्क्रिप्ट को डिस्क करने के लिए लिखना चाहिए जो चर निर्यात करता है, और यह अन्य सभी लक्ष्यों द्वारा चलाया जाता है? –

0

Apple's Technical Q&A QA1067 से ऐसा लगता है कि अगर आप फ़ाइल /Users/YOU/.MacOSX/environment.plist बना सकते हैं और अपने वांछित वातावरण चर कि सभी प्रक्रियाओं (उनके घर निर्देशिका में environment.plist फ़ाइल के साथ उपयोगकर्ता द्वारा शुरू की) से पॉप्युलेट इन वातावरण चर लेने जाएगा । एक नई लॉन्च प्रक्रिया चर को उठाए जाने से पहले आपको अपने कंप्यूटर को पुनरारंभ करना पड़ सकता है (या केवल लॉग आउट और बैक इन)।
This article यह भी दावा करता है कि एक्सकोड इन चर को एक बिल्ड चरण स्क्रिप्ट में भी पास करेगा। मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन अगली बार जब मैं अपना मैकबुक पुनरारंभ करता हूं तो मैं आपको बता दूंगा कि यह काम करता है या नहीं।

से http://developer.apple.com/library/mac/#/legacy/mac/library/qa/qa1067/_index.html

Q: How do I set environment for all processes launched by a specific user?


A: It is actually a fairly simple process to set environment variables for processes launched by a specific user.

वहाँ एक विशेष वातावरण फ़ाइल जिसमें हर बार के लिए खोजों loginwindow किसी उपयोगकर्ता के लॉग है। पर्यावरण फ़ाइल है: ~/.MacOSX/environment.plist (सावधान रहें, यह केस संवेदनशील है)। जहां '~' उस उपयोगकर्ता की होम निर्देशिका है जिसमें हम रुचि रखते हैं।आप को टर्मिनल का उपयोग करके .MACOSX निर्देशिका स्वयं बनाना होगा ( टाइपिंग mkdir .MacOSX)। आपको पर्यावरण को फ़ाइल स्वयं भी बनाना होगा। पर्यावरण फ़ाइल वास्तव में एक्सएमएल/प्लिस्ट प्रारूप में है (फ़ाइल नाम के अंत में .plist एक्सटेंशन को जोड़ना सुनिश्चित करें या यह काम नहीं करेगा)।

+0

क्या यह काम करता है? मैं इस विधि का उपयोग कर अपने चर देखने के लिए xcode प्राप्त करने में सक्षम नहीं हूं ... – brendanjerwin

+0

@brendan नहीं, यह दुर्भाग्य से मेरे लिए भी काम नहीं करता है। – chown

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

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