त्वरित उत्तर है: हाँ, हम कर सकते हैं!
इससे पहले कि मैं " यह कैसे किया जाता है " भाग में मिलता है, यहाँ मेरे पैच / हैक / फिक्स के बारे में कुछ नोट्स हैं। शुरू से ही प्रमुख लक्ष्य रहे हैं:
सभी संशोधनों को एक पूर्ण न्यूनतम पर रखें।
हम Xcode सेटअप को यथासंभव मूल रखना चाहते हैं।
हर तरह से, किसी भी फाइल को पैच करने या संशोधित करने से बचने की कोशिश करें।
हम चाहते हैं कि सभी फाइलें अछूती रहें और उनकी मूल सामग्री बनी रहे।
जब तक बिल्कुल आवश्यक न हो, फाइलों को इधर-उधर ले जाने या कॉपी करने से बचने की कोशिश करें।
मैं उन सभी लक्ष्यों को रखने में सक्षम था। लगभग हर चीज सिमिलिंक बनाकर की जाती है। केवल एक मौजूदा सिमलिंक को प्रतिस्थापित किया जाना था और हम इसे प्रतिस्थापन से पहले वापस कर देंगे, बस मामले में।
यदि आप टर्मिनल संचालन के विशेषज्ञ नहीं हैं, तो मैं आपको दृढ़ता से सलाह देता हूं कि आप टाइप करने से बचने के लिए अपने उत्तर से अपने टर्मिनल पर सभी टर्मिनल कमांड को कॉपी / पेस्ट करें। ध्यान रखें कि रिक्ति, उद्धरण और विशेष रूप से पूंजीकरण भी महत्वपूर्ण हो सकता है। उन्हें लाइन से कॉपी / पेस्ट करें, कभी भी एक बार में एक से अधिक लाइन न डालें और कमांड को निष्पादित करने के लिए प्रत्येक चिपकाई गई पंक्ति के बाद वापसी करें। क्या किसी भी ऑपरेशन में आपको पासवर्ड के लिए संकेत देना चाहिए, यह वर्तमान में व्यवस्थापक उपयोगकर्ता में लॉग इन किया गया पासवर्ड होगा (टाइप करते समय आपके कीस्ट्रोक्स प्रदर्शित नहीं होते हैं, यह सामान्य है, चिंता न करें, बस पासवर्ड टाइप करें और वापस लौटें; -यदि आप एक टाइपो था और फिर से प्रेरित हो जाओ)।
शर्त
शुरू करने से पहले, सुनिश्चित करें कि निम्नलिखित स्थितियाँ सत्य हैं:
- आप एक व्यवस्थापक उपयोगकर्ता के रूप में लॉग इन हैं।
- आपने Terminal.app (एप्लिकेशन / उपयोगिताएँ) शुरू कर दिया है और एक टर्मिनल विंडो खुली है।
- आपके पास Xcode3 (जैसे 3.2.5) और Xcode4 डिस्क छवि (DMG) या इंस्टॉलर की एक प्रति उपलब्ध है।
- यदि आपके पास पहले से ही Xcode संस्करण स्थापित है , तो पहले इसे अनइंस्टॉल करने पर विचार करें , ताकि आप एक नए / स्वच्छ सेटअप के साथ शुरुआत कर सकें। Xcode को अनइंस्टॉल करने से आपकी प्राथमिकताएं, रंग योजना या कुंजी बंधन अनुकूलन नहीं हटेंगे। आदर्श रूप से आप एक ऐसे सिस्टम से शुरू करेंगे जिसका कोई Xcode संस्करण नहीं है (न तो 3 और न ही 4) वर्तमान में स्थापित है।
चरण 1: Xcode3 स्थापित करना
महत्वपूर्ण : Xcode3 के " सिस्टम टूल्स " या " यूनिक्स डेवलपमेंट " पैकेज को स्थापित न करें।
आप " मैक ओएस एक्स 10.4 एसडीके " और / या " डॉक्यूमेंटेशन " स्थापित करना चाहते हैं या नहीं । अगर वह iOS SDKs के साथ Xcode3 है, तो आप उन्हें इंस्टॉल करते हैं या नहीं, यह भी आप पर निर्भर है।
आप अपनी स्थापना के लिए कोई भी गंतव्य फ़ोल्डर चुनने के लिए स्वतंत्र हैं। इस गाइड के लिए मैंने " / Xcode3 " चुना है, लेकिन एक अलग लेने के लिए स्वतंत्र महसूस करें। बस तदनुसार सभी टर्मिनल कमांड को बदलना सुनिश्चित करें।
यहां दिए गए चरणों का क्रम आमतौर पर महत्वपूर्ण नहीं है, लेकिन मैं आपको दृढ़ता से सलाह देता हूं कि आप चरण 1 और चरण 2 को स्वैप न करें। Xcode हमेशा चयनित गंतव्य फ़ोल्डर के बाहर कुछ फ़ाइलों को स्थापित करता है और मुझ पर विश्वास करता है, अंत में आप चाहते हैं आपकी डिस्क पर उन फ़ाइलों के Xcode4 संस्करण। Xcode4 से पहले Xcode3 को स्थापित करके, आप यह सुनिश्चित कर सकते हैं कि यदि आवश्यक हो तो Xcode4 उन फ़ाइलों को अधिलेखित कर देगा। मैंने एक बार चरण 1 और 2 को स्वैप किया था और अंत में मेरे पास कुछ अजीब मुद्दे थे जो गलत क्रम से संबंधित हो सकते हैं (मैं निश्चित रूप से नहीं कह सकता, लेकिन सही क्रम में पुनः स्थापित होने के बाद मुद्दे समाप्त हो गए थे)।
चरण 2: Xcode4 स्थापित करना
आपको जो भी पैकेट पसंद हो उसे चुन लें। " सिस्टम टूल " को स्थापित करना उचित है, लेकिन सख्ती से आवश्यक नहीं है (हालांकि अधिकांश लोग जल्दी या बाद में उस कार्यक्षमता को याद करेंगे)।
फिर से, किसी भी लक्ष्य फ़ोल्डर को पसंद करने के लिए स्वतंत्र महसूस करें। इस गाइड के लिए मैंने सामान्य लक्ष्य फ़ोल्डर " / डेवलपर " चुना, यदि आप एक अलग लेते हैं, तो तदनुसार सभी टर्मिनल कमांड को बदल दें।
चरण 3: 10.4 / 10.5 एसडीके समर्थन बहाल करना
अपनी टर्मिनल विंडो में स्विच करें और निम्न कमांड चलाएं:
सीडी / डेवलपर / एसडीके
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk
यदि आप चरण 1 में एसडीके 10.4 भी स्थापित करते हैं, तो केवल 10.4u के लिए ही कमांड चलाएं।
यह SDKs 10.5 (और संभवतः 10.4) को Xcode4 में चयन सूची में वापस लाने के लिए पर्याप्त है। अगर आपको पसंद है तो इसे आजमाएं। आग Xcode4, एक परियोजना खोलें, चयनित SDK को बदलने का प्रयास करें। यह आसान था, हुह? अगले चरण के साथ आगे बढ़ने से पहले फिर से Xcode4 (एप्लिकेशन, न केवल विंडो) को बंद करना सुनिश्चित करें।
चरण 4: जीसीसी 4.0 समर्थन को बहाल करना
यदि आपने MacOS 10.4 SDK स्थापित नहीं किया है या यदि आपने कभी इसका उपयोग करने की योजना नहीं बनाई है, तो आप सुरक्षित रूप से इस चरण को छोड़ सकते हैं और चरण 5 के साथ आगे बढ़ सकते हैं।
एसडीके 10.4 का उपयोग करने के लिए, आपको जीसीसी 4.0 का उपयोग करना होगा, जीसीसी 4.2 काम नहीं करेगा। Apple का दावा है कि GCC 4.2 SDK 10.4 के साथ संगत नहीं है, यदि आप मुझसे पूछें तो यह एक धोखा है। मैंने पहले ही इस सीमाओं को एक से अधिक बार लिख लिया है और इसके कारण कभी भी सबसे अधिक समस्या नहीं थी। एसडीके 10.4 को संशोधित करना आसान होगा ताकि एक्सकोड आपको इसके लिए जीसीसी 4.2 का उपयोग करने की अनुमति देगा, लेकिन मेरा लक्ष्य सभी फ़ाइल संशोधनों से बचना था, इसलिए हम सिर्फ एक्सकोड में जीसीसी 4.0 समर्थन वापस जोड़ते हैं, जो एक अच्छी बात भी है, क्योंकि कुछ परियोजनाएं वास्तव में जीसीसी 4.0 पर निर्भर करती हैं (जैसे कि जीसीसी 4.2 में कुछ बग हैं जो त्रुटियों के बिना संकलन करने के लिए वैध इनलाइन विधानसभा कोड को रोकते हैं, जबकि समान कोड जीसीसी 4.0 और जीसीसी 4.4 पर त्रुटिपूर्ण संकलन करता है)।
वापस टर्मिनल पर:
सीडी / डेवलपर / usr / बिन
sudo ln -s /Xcode3/usr/bin/*4.0*
cd / Developer / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1।
अभी हमने इस तथ्य को छोड़कर पूर्ण GCC 4.0 समर्थन को बहाल किया है कि अभी भी GCC 4.0 Xcode4 में चयन करने योग्य नहीं है। ऐसा इसलिए है क्योंकि Xcode4 में अब कोई GCC 4.0 कंपाइलर प्लग-इन नहीं है। सौभाग्य से Xcode3 प्लग-इन भी Xcode4 में काम करता है, केवल स्थिति मौलिक रूप से बदल गई है। Apple अब उन प्लग-इन को एक बंडल के भीतर छिपाता है और केवल प्लग-इन काम करने लगता है, उन्हें उनकी पुरानी स्थिति में रखने से कोई प्रभाव नहीं पड़ता है।
सीडी / डेवलपर / पुस्तकालय / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / प्लग-इन
sudo ln -s "/ Xcode3 / लाइब्रेरी / Xcode / प्लग-इन / GCC 4.0.xcplugin"
अब फिर से Xcode4 फायर करें, एक प्रोजेक्ट खोलें और कंपाइलर का चयन करने का प्रयास करें। आपके पास सूची में जीसीसी 4.0 वापस होना चाहिए। अब आप वास्तव में पहले से ही एसडीके 10.4 या 10.5, जीसीसी 4.0 का चयन कर सकते हैं और आपके पास पीपीसी बाइनरी बनाने के लिए कोई समस्या नहीं होनी चाहिए। बस " आर्किटेक्चर " बिल्ड सेटिंग के लिए " अन्य ... " का चयन करें और मैन्युअल रूप से " पीपीसी " दर्ज करें , फिर " मान्य आर्किटेक्चर " को बदलकर " पीपीसी " भी शामिल करें । हम लगभग पूरे हो चुके हैं, सिवाय इसके कि जीसीसी 4.2 और एसडीके 10.5 का उपयोग करके पीपीसी बाइनरी बनाने की कोशिश अभी भी विफल रहेगी।
चरण 5: जीसीसी 4.2 के लिए पीपीसी समर्थन बहाल करना
चूंकि Apple केवल Xcode4 में इंटेल प्लेटफॉर्म का समर्थन कर रहा है, इसलिए सभी GCC 4.2 उपकरण पीपीसी समर्थन के साथ नहीं बनाए गए हैं। एक महत्वपूर्ण उपकरण है जिसका कोई पीपीसी समर्थन नहीं है, उपकरण को " जैसा " नाम दिया गया है और यह जीएनयू असेंबलर है। PCC / ppc64 बायनेरिज़ को GCC 4.2 के साथ संकलित करने के लिए हमें ppc / ppc64 सपोर्ट के साथ " as " संस्करण का उपयोग करने की आवश्यकता है । यह एक और केवल एक फ़ाइल है (वास्तव में यह एक सिम्लिंक भी है) हमें सिम्लिंक को बदलने से पहले हमें एक तरफ ले जाना होगा (बैकअप कॉपी बनाना होगा):
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.1.1
sudo mv as.bak
sudo ln -s / Xcode3 / usr / bin / as।
चरण 6: कोई चरण 6 नहीं है
बस आज के लिए इतना ही। यह देखते हुए कि यह कितना आसान था, आप कल्पना कर सकते हैं कि Apple ने निश्चित रूप से SDK 10.4 / 10.5 या ppc / ppc64 या GCC 4.0 का समर्थन नहीं किया है क्योंकि यह एक आवश्यकता थी, उन्होंने वह सब गिरा दिया क्योंकि वे इसे गिराना चाहते थे।
मुझे उम्मीद है कि यह सेटअप आपके लिए भी उतना ही कारगर होगा जितना यह मेरे लिए करता है। मैं Xcode4 में अपनी सभी पुरानी परियोजनाओं को बिना किसी बड़े बदलाव के संकलित करने में सक्षम रहा हूं, सिवाय इसके कि यहां और वहां एक खोज पथ को बदलने के लिए।
पुनश्च:
यह अजीब लग सकता है कि मैं अपने स्वयं के प्रश्न का उत्तर देता हूं, लेकिन जब से मुझे पता चला है कि इस समस्या को कैसे हल किया जाए, मैं अपने ज्ञान को समुदाय के साथ साझा करना चाहता हूं, क्योंकि मेरा मानना है कि यह वास्तव में मूल्यवान इनपुट है सभी MacOS डेवलपर्स वहाँ से बाहर। यह सवाल इतनी सारी जगहों पर इतनी बार पूछा जा चुका है और अभी तक मैंने कभी किसी को एक समान फिक्स के साथ आते नहीं देखा। धन साझा करें, ज्ञान फैलाएं और इसी तरह, आप जानते हैं कि मेरा क्या मतलब है।
यदि आप अभी भी समस्याएँ / प्रश्न हैं:
यदि आपके पास इस विषय के बारे में अतिरिक्त प्रश्न हैं या यदि आपको अभी भी अपनी पुरानी परियोजनाओं को सही ढंग से बनाने की समस्या है, तो कृपया उस स्टैक ओवरफ्लो के लिए क्या डिज़ाइन किया गया है: इस पृष्ठ के ऊपरी दाएं कोने में "प्रश्न पूछें" पर क्लिक करें और एक नया प्रश्न बनाएं । इस तरह से पूरा समुदाय आपको उन मुद्दों को हल करने में मदद कर सकता है, क्योंकि मुद्दे सीधे (शायद अप्रत्यक्ष रूप से भी नहीं) इस हैक से संबंधित हो सकते हैं।
मैं आपको इस तथ्य का उल्लेख करने की सलाह दूंगा कि आपने इस हैक को अपने प्रश्न की शुरुआत में लागू किया था। हो सकता है कि आप भी सीधे इस प्रश्न से लिंक करना चाहते हों, ताकि लोग, जिन्होंने कभी इस हैक के बारे में नहीं सुना, वे इसे आसानी से देख सकें। अन्यथा ज्यादातर लोग Xcode4 के संयोजन में SDK 10.4 / 10.5, PPC या GCC 4.0 का उल्लेख करते समय अधिक भ्रमित हो जाएंगे, जो आधिकारिक तौर पर इनमें से किसी का भी समर्थन नहीं करता है। यदि आप इस हैक का उल्लेख करना भूल जाते हैं, तो आपको सभ्य उत्तरों के बजाय बेवकूफ टिप्पणियां मिल सकती हैं।
कृपया अपने प्रश्नों या मुद्दों को उत्तर के रूप में या टिप्पणियों के रूप में यहां पोस्ट करने से बचें। उत्तर के रूप में उन्हें पोस्ट करने से कोई मतलब नहीं है क्योंकि वे कोई जवाब नहीं हैं और कोई तरीका नहीं है कि लोग आपके बारे में कैसे जवाब दे सकते हैं, अन्य तो टिप्पणियों का उपयोग कर रहे हैं, और टिप्पणी आपके प्रश्न के सभ्य उत्तर के लिए पर्याप्त जगह नहीं दे सकती हैं या आपके लिए एक सभ्य समाधान हो सकता है। संकट। और उन्हें टिप्पणियों के रूप में पोस्ट करने का मतलब है कि आप बहुत कम कमरे तक सीमित हैं और उत्तर टिप्पणियों को ट्रैक करना कठिन होगा क्योंकि टिप्पणियों में कोई पेड़ की तरह पदानुक्रम नहीं है (आगे वे अभी भी सभ्य उत्तरों / समाधानों के लिए छोटे कमरे की पेशकश करेंगे)। धन्यवाद।
बेशक मूल सवाल का अन्य प्रकार की टिप्पणियों के साथ-साथ बेहतर जवाब हमेशा स्वागत है ;-)