2011-09-09 20 views
9

मैं निरंतर एकीकरण सर्वर पर एक बैश स्क्रिप्ट के अंदर xcodebuild का उपयोग कर रहा हूं।xcodebuild का वापसी मूल्य कैसे प्राप्त करें?

मैं जानना चाहता हूं कि स्क्रिप्ट में विफल होने पर निर्माण कब होता है, इसलिए मैं इससे समय से बाहर निकल सकता हूं और बिल्ड को विफल के रूप में चिह्नित कर सकता हूं।

xcodebuild कंसोल पर एक निर्मित असफल संदेश प्रदर्शित करता है, लेकिन मैं वापसी मूल्य प्राप्त करने में सफल नहीं हूं।

मैं इसे कैसे प्राप्त कर सकता हूं?

अग्रिम

उत्तर

7

धन्यवाद मैं इस आदेश का उपयोग मेरी समस्या हल: xcodebuild -... || बाहर निकलें 1

+0

यह सबसे साफ जवाब है। thnx माइक;) – MQoder

8

आप "$?" का उपयोग कर सकते हैं पिछले कमांड का रिटर्न कोड प्राप्त करने के लिए चर।

xcodebuild -... 
if [[$? == 0]]; then 
    echo "Success" 
else 
    echo "Failed" 
fi 
11

xcodebuild वास्तविक परीक्षण परिणाम के बावजूद हमेशा 0 लौटाता है। आउटपुट में आपको ** BUILD FAILED ** या ** BUILD SUCCEEDED ** की जांच करनी चाहिए ताकि यह पता चल सके कि परीक्षण पास हो या नहीं।

+1

हम उन स्थितियों को वास्तव में कैसे देख सकते हैं? वे AFAIK निकास कोड की तरह नहीं हैं – erenkabakci

4

एक्सकोडबिल्ड here सूचीबद्ध किसी भी त्रुटि कोड को वापस कर सकता है और EX_OK (या int 0) तक सीमित नहीं है।

हालांकि, मैंने दिमित्री द्वारा प्रदान किए गए समाधान से सीखा और निम्नलिखित के रूप में संशोधित किया। यह मेरे लिए काम करता है और मुझे आशा है कि यह सहायक हो सकता है।

xcodebuild -project ...... 
    if test $? -eq 0 
    then 
     echo "Success" 
    else 
     echo "Failed" 
    fi 
2

शायद यह विफल होने पर xcodebuild गैर-शून्य वापस नहीं लौटने की वजह से नहीं है। आपकी शेल स्क्रिप्ट रिटर्निंग-त्रुटि लाइन के बावजूद चलने के लिए जारी है, इसका नतीजा यह हो सकता है कि आपने "-e" विकल्प के साथ स्क्रिप्ट नहीं चलाया।

स्क्रिप्ट फ़ाइल से पहले #!/Bin/bash -e डालने का प्रयास करें।

-1

चाहे संकलित उत्पाद (.a या .ipa फ़ाइल) मौजूद है

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