2010-12-29 14 views
6

मेरे पास एक स्क्रिप्ट है जो एक्सकोड में वास्तविक निर्माण से पहले कुछ प्रीप्रोकैसिंग करता है। क्या एक्सकोड "बिल्ड और आर्काइव" कर रहा है, यह बताने का कोई तरीका है? मैं संग्रह चरण के हिस्से के रूप में एक "svn प्रतिबद्ध" करना चाहता हूँ। मैंने निर्माण के दौरान वहां मौजूद पर्यावरण चर को छोड़ दिया, लेकिन वे एक सामान्य निर्माण के रूप में संग्रह के लिए समान दिखते हैं।कैसे बताएं कि Xcode एक स्क्रिप्ट में "निर्माण और संग्रह" कर रहा है या नहीं?

कुछ और जो यह जांचने के लिए जांच की जा सकती है कि यह एक संग्रह बना रहा है या नहीं?

संग्रह बनाने से पहले स्वचालित रूप से प्रतिबद्ध करने का कोई अन्य तरीका? मैं हर निर्माण के लिए प्रतिबद्ध नहीं करना चाहता क्योंकि यह एसवीएन पेड़ को आईएमओ नेविगेट करने में कठोर बनाता है।

मैं एक्सकोड 3.2.5 का उपयोग कर रहा हूं।

धन्यवाद! मानक

उत्तर

0

मैं आपको Xcode GUI से स्वतंत्र स्क्रिप्ट के साथ दैनिक निर्माण प्रणाली प्राप्त करने की सलाह देता हूं। यह केवल svn commit ट्रिगर बिल्ड और आर्काइव और वितरण करेगा। यहाँ में वर्णित की तरह आप xcrun कमांड के साथ बिल्ड और आर्काइव चला सकते हैं:

Xcode "Build and Archive" from command line

+0

मुझे लगता है कि यह वह मार्ग हो सकता है जो मुझे लेना है। एक और विकल्प है जब मैं एक संग्रह करना चाहता हूं तो एक अलग कॉन्फ़िगरेशन का उपयोग करना है। अभी भी सही कॉन्फ़िगरेशन चुनने पर मुझ पर निर्भर करता है, लेकिन फिर एक्सकोड अभी भी काम कर सकता है। – TejasSoft

2

मैं कमांड लाइन का निर्माण और संग्रह से बचना चाहता था के बाद से मैंने पढ़ा है कि यह प्रावधान प्रोफ़ाइल एम्बेडेड के साथ एक .ipa फ़ाइल का निर्माण नहीं करता है इस में। इसका उपयोग करके इसे टेस्टर्स को भेजना बहुत आसान हो जाता है।

मैं 4 विन्यास है:

मैं क्या निम्नलिखित था। डीबग, रिलीज, विज्ञापन हॉक रिलीज, और ऐप स्टोर रिलीज।

मैं प्रतिबद्धता किए बिना निर्माण करने के लिए डीबग और रिलीज का उपयोग करता हूं। जब मैं बीटा टेस्टर्स को भेजना चाहता हूं, और अंतिम परीक्षण और ऐप स्टोर सबमिटल के लिए ऐप स्टोर में विज्ञापन विज्ञापन का उपयोग करता हूं।

यहां वह कोड है जिसे मैंने अपनी प्री-बिल्ड स्क्रिप्ट में जोड़ा था।

# Get the version number from the .plist file 
VER_NUM=`cat "${SRCROOT}/${INFOPLIST_FILE}" | grep -A 1 CFBundleVersion | grep string | sed 's/]*>//g' | sed 's/^[ ]*//'` 

# Check build type to see if svn commit should be done 
if [ "${BUILD_STYLE}" == "App Store Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${BUILD_STYLE}" == "Ad Hoc Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${SVN_COMMIT}" == "yes" ] 
then 
echo "Commiting the project to SVN" 
BUILD_TIME=`date` 
svn commit -m "\"Version ${VER_NUM} for ${BUILD_STYLE} ${BUILD_TIME}\"" 
fi 

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

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