मैं एक्सकोड के साइड-बाय-साइड इंस्टॉलेशन करना चाहता हूं, और उनके बीच चयन करने के लिए DEVELOPER_DIR पर्यावरण चर का उपयोग करना चाहता हूं।
एक्सकोड के दो या दो से अधिक संस्करण स्थापित करना ठीक है। उनके बीच चयन करने का सामान्य तरीका xcode-select
कमांड का उपयोग करना है, लेकिन उस कमांड के लिए मैन पेज ऐसा लगता है कि आप केवल पर्यावरण चर सेट करके वर्तमान सत्र के लिए एक ही चीज़ को पूरा कर सकते हैं। यहां बताया गया है --switch
विकल्प के लिए दस्तावेज़ का कहना है:
, दिए गए पथ को सक्रिय डेवलपर निर्देशिका सेट उदाहरण /Applications/Xcode-DP.app के लिए। यह आदेश सुपरसुर अनुमतियों के साथ चलाना चाहिए (सुडो (8) देखें), और सिस्टम पर सभी उपयोगकर्ताओं को प्रभावित करेगा। पथ-आउट सुपरसुर अनुमतियों को सेट करें या केवल वर्तमान शैल सत्र के लिए सेट करें, (पर्यावरण देखें) के बजाय DEVELOPER_DIR पर्यावरण चर का उपयोग करें।
ध्यान दें कि ऐतिहासिक कारण के लिए, डेवलपर निर्देशिका माना जाता है Xcode आवेदन अंदर डेवलपर सामग्री निर्देशिका होने के लिए:
हालांकि, अगर आप भी पर्यावरण खंड में दिए गए सलाह पर ध्यान देना चाहिए (उदाहरण के लिए/अनुप्रयोग /Xcode.app/Contents/ डेवलपर)। आप या तो वास्तविक डेवलपर सामग्री निर्देशिका, या एक्सकोड अनुप्रयोग निर्देशिका - कोड-चयन प्रदान करने के लिए पर्यावरण चर सेट कर सकते हैं बशर्ते शिम्स स्वचालित रूप से पर्यावरण परिवर्तक को पूर्ण डेवलपर सामग्री पथ में परिवर्तित कर दें।
तो अपने प्रश्न में <whatever>
पूरा पथ Developer
निर्देशिका के लिए, बस नहीं Xcode आवेदन करने के लिए निर्दिष्ट करना चाहिए।
दूसरे शब्दों में, जबकि xcrun स्पष्ट रूप से DEVELOPER_DIR के मान पर निर्भर करता है, तो क्या उपकरण स्वयं भी इस पर निर्भर करते हैं? • DEVELOPER_DIR=<whatever> command CC=$(xcrun -f --sdk macosx clang)
xcrun
का उपयोग उपकरणों को खोजने के लिए, ताकि आप उन्हें अपने आप को आह्वान और जब स्थापित करने के लिए और सेट नहीं DEVELOPER_DIR
overly जटिल लगता है के बारे में चिंता कर सकते हैं
: वहाँ के बीच एक सार्थक फर्क है। xcode-select
दस्तावेज के अनुसार, सभी "shims" DEVELOPER_DIR
सेटिंग का सम्मान करते हैं। यहां "शिम्स" /usr/bin
में एक्सकोड कमांड को संदर्भित करता है। जब तक कि पर्यावरण परिवर्तनीय सही ढंग से सेट किया गया हो, आप xcrun
जो भी पा सकते हैं, उसके बजाय आप '/ usr/bin/clang' का आह्वान कर सकते हैं, और /usr/bin/clang
में clang
संस्करण से कॉल करेगा। संभवतः, आप इस सवाल से पूछ रहे हैं क्योंकि आप किसी प्रकार की बिल्ड स्क्रिप्ट लिख रहे हैं, इसलिए उस स्क्रिप्ट में को सेट करने में कोई समस्या नहीं होनी चाहिए और फिर केवल /usr/bin
कमांड का उपयोग करना चाहिए।
command CC=$(DEVELOPER_DIR=<whatever> xcrun -f --sdk macosx clang)
•
कार्यक्रम उनके माता पिता प्रक्रियाओं से पर्यावरण के वारिस। यहां आपको उपयोग करने के लिए clang
की सही प्रतिलिपि मिल रही है, लेकिन आप इसे ऐसे माहौल में आमंत्रित करेंगे जहां सेट नहीं है। क्या यह मामला इस बात पर निर्भर करता है कि आप जिस उपकरण का उपयोग कर रहे हैं वह किसी भी अन्य उपकरण को आमंत्रित करता है या नहीं। मैं ईमानदारी से नहीं जानता कि कोई भी उपकरण अन्य टूल्स का आह्वान करता है, लेकिन यह तार्किक लगता है कि xcodebuild
जैसे टूल में से कई टूल शामिल होंगे और इसलिए पर सही तरीके से सेट किया जा रहा है।
संक्षेप में, वहाँ DEVELOPER_DIR
सेटिंग के रूप में अपने निर्माण लिपि में की जरूरत है, और करने के लिए xcrun
वैकल्पिक दृष्टिकोण की तुलना में सामान्य रूप में कम विश्वसनीय लगता है केवल अपने कॉल में यह निर्दिष्ट करने के लिए कोशिश कर रहा करने के लिए कोई नकारात्मक पहलू है।