2013-08-07 7 views
5

के माध्यम से कंपाइलर झंडे पास करना मैं वर्तमान में आईओएस के लिए परीक्षण स्वचालित करने के लिए xcodebuild का उपयोग कर रहा हूं।xcodebuild

अभी, मैं सीधे संकलक के लिए एक्सकोड के माध्यम से कंपाइलर झंडे पास करने की कोशिश करने पर अटक गया हूं। ये झंडे हैं: -fprofile-arcs -ftest-coverage

मेरे पास xcodeproj को संशोधित करने की स्वतंत्रता नहीं है, इसलिए मैं इन झंडे को xcodebuild कमांड के माध्यम से इंजेक्ट करना चाहता हूं। की तरह कुछ

यह होगा:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp -fprofile-arcs -ftest-coverage 

कि संभव है? कैसे?

+1

OTHER_CFLAGS तर्क – borrrden

+0

OTHER_CFLAGS तर्क पहले से ही उदासी :(xcodeproj सेटिंग में प्रयोग किया जाता है का उपयोग कर उन्हें स्थापित करने का प्रयास करें लेकिन मैं एक समाधान :) नीचे देखो मिला है। – aspyct

उत्तर

5

स्पष्ट रूप से अधिकांश कंपाइलर झंडे को स्थिरांक के रूप में व्यक्त किया जा सकता है, और इन्हें आसानी से एक्सकोडबिल्ड के माध्यम से कंपाइलर में भेजा जा सकता है।

उन्हें प्राप्त करने के लिए, बस एक्सकोड बिल्ड सेटिंग्स दृश्य में विकल्प का चयन करें, और कमांड-सी (प्रतिलिपि) दबाएं। मेरे मामले में, वे GCC_GENERATE_TEST_COVERAGE_FILES और GCC_INSTRUMENT_PROGRAM_FLOW_ARCS थे।

मेरे आदेश मोटे तौर पर इस तरह दिखता है:

xcodebuild GCC_GENERATE_TEST_COVERAGE_FILES=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES ... 
+2

सावधान रहें, यह उत्तर भ्रम पैदा कर सकता है। आप यहां वास्तव में कंपाइलर झंडे नहीं पारित कर रहे हैं, केवल कुछ एक्सकोड पर्यावरण झंडे के मूल्य को ओवरराइड कर रहे हैं, जो बदले में इसी कंपाइलर झंडे को सेट करता है। यदि आप इसके बजाय कुछ कस्टम कंपाइलर ध्वज सेट करना चाहते हैं तो आपको OTHER_CFLAGS env var को ओवरराइड करना होगा। –

2

हाँ, संकलक वास्तव में स्थापित करने के सभी स्ट्रिंग कुंजी-मान जोड़ों के लिए निर्भर करता है। मैं कमांड लाइन है कि बस के रूप में इन सेटिंग्स के लिए लागू है से पूर्वप्रक्रमक मैक्रो स्थापना के बारे में एक बहुत ही इसी तरह के सवाल आप सेट करना चाहते हैं उत्तर दिया:

Setting a #define from the command line in xcode 4.6

मैं भी $ के उपयोग पर ध्यान आकर्षित करने के लिए करना चाहते { विरासत में} - इस मान का उपयोग करके आप एक्सकोड प्रोजेक्ट-निर्दिष्ट मानों का उपयोग कर सकते हैं और अपना स्वयं का जोड़ सकते हैं। कि आप कॉपी-पेस्ट के माध्यम से स्थित उन सहित निर्माण सेटिंग्स से प्रत्येक के लिए प्रलेखन यहां पाया जा सकता:

http://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

कि आपको वह काम करने के लिए प्राप्त करने में सक्षम थे - क्या तुम सच में xcodebuild कर सकते हैं अब भी बहुत कुछ कर लक्षित एक्सकोड परियोजना के परिवर्तन की आवश्यकता के बिना आपके लिए!

+0

दिलचस्प, अतिरिक्त जानकारी के लिए धन्यवाद :) – aspyct

2

xcodebuild के साथ कंपाइलर झंडे सेट करने के लिए, आपको उन्हें OTHERCFLAGS विकल्प में रखना होगा।

उदाहरण के लिए:

xcodebuild -project path/to/my.xcodeproj -scheme MyApp \ 
    OTHERCFLAGS="-fprofile-arcs -ftest-coverage" 
संबंधित मुद्दे