मैं अपनी रिलीज़ कॉन्फ़िगरेशन के लिए "रन स्क्रिप्ट" बिल्ड चरण कैसे सीमित कर सकता हूं?


138

मेरे पास एक शेल स्क्रिप्ट है जिसे मैं अपने लक्ष्य के निर्माण चरण के अंत में चलाना चाहूंगा। हालाँकि, मैं इस स्क्रिप्ट को केवल तभी चलाना चाहूँगा जब मैं रिलीज़ कॉन्फ़िगरेशन के साथ निर्माण करूँगा । यह कैसे किया जा सकता है? धन्यवाद!

जवाबों:


295
if [ "${CONFIGURATION}" = "Release" ]; then
  echo Do something really release-like
fi

स्क्रिप्ट हर कॉन्फ़िगरेशन के अंत में चलेगी, लेकिन यह इस मामले में कुछ भी नहीं करेगी जब तक कि कॉन्फ़िगरेशन रिलीज़ न हो (यह सब कुछ जो यह करता है, परीक्षण ब्लॉक के भीतर निहित है)।


1
मुझे पता चला कि यह बहु-शब्द विन्यास नाम के साथ काम नहीं करता है। यह "रिलीज़" के साथ काम करता है लेकिन "आंतरिक बीटा" के साथ नहीं है।
हेडिन

4
@ हेदिन - जो सिर्फ बैश है; यदि आपके पास बहु-शब्द चर है, तो आपको चर को उद्धरणों में घेरना होगा। तो $ {CONFIGURATION} "$ {CONFIGURATION}" बन जाता है। मैं इसमें शामिल होने के उत्तर को अपडेट करूंगा।
जेसन कोको

15
मेरे पास 'डीबग', 'रिलीज़' (इंस्ट्रूमेंट्स के लिए), 'एड हॉक' और 'ऐप स्टोर' कॉन्फिगर हैं (अलग-अलग कोड साइनिंग के साथ), इसलिए मैंने इसे बदल दिया if [ "${CONFIGURATION}" != "Debug" ]; then...
निकोलस मिआरी

1
अगर इस स्थिति के लिए मैं .pch फ़ाइल में संग्रहीत #define TRUE / FALSE का उपयोग करना चाहता हूं .. तो मैं इसे स्क्रिप्ट कोड में कैसे संदर्भित करूंगा?
न्यूटन_गुइमा

2
क्या यह वही चीज प्री-प्रोसेसर झंडे के साथ पूरी हो सकती है?
जस्टिन वेलेली

15

ऐसा करने का सबसे आसान तरीका, चेकबॉक्स स्थापित करते समय "केवल स्क्रिप्ट चलाएँ" की जाँच कर रहा है।



4
"एक वास्तविक डिवाइस पर डिबग-इंस्टॉलेशन (Xcode से निर्माण और रन) को" इंस्टॉल करना "के रूप में नहीं गिना जाता है। रन स्क्रिप्ट केवल तब चलती है जब संग्रह (Xcode 9 के साथ परीक्षण)।" stackoverflow.com/questions/5913199/…
darkheartfelt

2
यदि आप अपने ऐप को Releaseकॉन्फ़िगरेशन के बिना बनाना चाहते हैं तो यह काम नहीं करेगा । प्रश्न Releaseविन्यास के बारे में स्पष्ट रूप से था ।
लेगोनैफ्टिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.