हम यह भी पाया है कि Xcode 3.2.5 डिवाइस बनाता है वितरित नहीं करता है, जबकि सिम्युलेटर बनाता है के तहत Xcode प्राथमिकताएं सभी आवश्यक विकल्प सेट करने के बावजूद, distcc के साथ ठीक से वितरित कर रहे हैं -> वितरित बनाता।
हालांकि, एक्सकोड की सीमा को काम करना संभव है और इसे डिवाइस बिल्डों को वितरित करने के लिए मजबूर करना भी संभव है। यह ऐप्पल के हिस्से पर एक निरीक्षण (बग!) जैसा दिखता है कि उन्होंने डिफ़ॉल्ट रूप से डिवाइस वितरित बिल्ड को सक्षम नहीं किया है।
कदम उठाने की जरूरत है इस प्रकार हैं:
Xcode उपयोगकर्ता डिफ़ॉल्ट PBXNumberOfParallelBuildSubtasks का मूल्य बढ़ाएँ। यह सीपीयू कोर की संख्या के समानांतर बिल्ड कार्यों और डिफ़ॉल्ट की अधिकतम संख्या को सीमित करता है (विवरण के लिए ऐप्पल का अपना एक्सकोड उपयोगकर्ता डिफ़ॉल्ट संदर्भ दस्तावेज़ देखें)। मैं इसे 2 से 16 की वृद्धि हुई, इस प्रकार है:
write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 16
या Xcode 4.2 defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 16
के लिए
प्रभावी करने के लिए ऊपर बदलाव के लिए Xcode फिर से शुरू करने के लिए सुनिश्चित करें।
आप DISTCC_HOSTS वातावरण चर distcc
आदमी पेज में दिए गए विवरण के रूप में की अपनी मान सेट करने की आवश्यकता होगी।
ऐसा करने के लिए, आप अपने खुद /Developer/usr/bin/distcc
स्क्रिप्ट के भीतर से DISTCC_HOSTS सेट करना होगा (जो तब जो आप कुछ और करने के लिए नाम बदलने के मूल /Developer/usr/bin/distcc
द्विआधारी, कॉल)। ध्यान दें कि प्रत्येक संकलन इकाई के लिए एक्सकोड /Developer/usr/bin/distcc
पर कॉल करता है और प्रत्येक कॉल से पहले DISTCC_HOSTS सेट करता है, इसलिए आपको Xcode को ओवरराइड करने के लिए इस मास्करेड स्क्रिप्ट का उपयोग करने की आवश्यकता है।
मेरा अपना distcc
स्क्रिप्ट बस इस प्रकार है (और मैं distcc.orig
करने के लिए मूल distcc
द्विआधारी का नाम बदला):
#!/bin/sh
export DISTCC_HOSTS="--randomize your list of hosts, each followed by ',cpp,lzo'"
/Developer/usr/bin/distcc.orig "[email protected]"
exit $?
बहुत सारे विकल्प DISTCC_HOSTS में बदलाव करने, विशेष रूप से का उपयोग कर रहे हैं के विषय में अपने स्वयं के लोकहोस्ट को खेती के बजाय कुछ संकलन करने के लिए कुछ भी करना है, लेकिन उपर्युक्त कम से कम आपको शुरू करना चाहिए। आपके लिए सबसे अच्छा क्या काम करता है जाहिर है आपके मैक हार्डवेयर और नेटवर्क प्रदर्शन पर निर्भर करता है।
मेरे अपने अनुभव में, एक वितरित बिल्ड सर्वर सेटअप का उपयोग करके, कुछ क्वाड-कोर मैक के साथ-साथ अपेक्षाकृत धीमी नेटवर्क पर अपने स्वयं के दोहरे कोर मैक के साथ पूर्ण डिवाइस को फिर से निर्माण करने में लगभग 15 मिनट के बारे में 5.
मैं आलोचना नहीं कर रहा हूं, लेकिन क्या कोई असली कारण है कि आप निर्माण को वितरित करना चाहते हैं? क्या परियोजना बहुत बड़ी है और एक मशीन पर निर्माण करने में काफी समय लगता है? – Jasarien
@Jasarien http://stackoverflow.com/questions/6136719/can-iphone-device-builds-be-built-using-distcc-for-distributed-builds –
@Jasarien, कि प्रश्न में मेरी नवीनतम टिप्पणी देखें। हाँ, यह मायने रखता है। एक पूर्ण पुनर्निर्माण (और ये असामान्य नहीं हैं) आधे घंटे तक लग सकते हैं। –