कोड में किसी भी परिवर्तन के साथ (हालाँकि फ़ाइल .pch में नहीं है), हर बार पूरा प्रोजेक्ट recompiles।
कोड में किसी भी परिवर्तन के साथ (हालाँकि फ़ाइल .pch में नहीं है), हर बार पूरा प्रोजेक्ट recompiles।
जवाबों:
अपडेट 2017/1/2
इस समस्या को Xcode 8.2.1 पर हल नहीं किया गया है (मेरी परियोजना के लिए)
कैसे जीवित रहे?
Code IDE: Xcode/Atom
Build: xcrun
Debug: Xcode (Control + Command + R)
अपडेट 2016/12/17
इस समस्या को Xcode 8.2 पर हल नहीं किया गया है।
अद्यतन 2016/12/12
एटम टू कोड और कमांड लाइन का निर्माण और डिबग करना अब मेरी पसंद है। आशा है कि Apple इस वैध बग को जल्द ही ठीक कर देगा।
अपडेट 2016/12/04
यह समस्या Xcode 8.2 (बीटा 2) के साथ हल हो गई है ।
लेकिन मेरे लिए इसका समाधान नहीं किया गया है, मैं इस मुद्दे का सामना भी करता हूं जब मैं एक्सकोड 8.2 का उपयोग करता हूं। आप इसे आज़मा सकते हैं ( यहाँ Xcode8.2 Beta2 डाउनलोड करें )
बिल्ड सिस्टम • Xcode पूरे लक्ष्य का पुनर्निर्माण नहीं करेगा जब केवल छोटे परिवर्तन हुए हैं। (28892475)
पुराना उत्तर: यह एक काम है:
"बिल्ड सेटिंग" टैब -> "सी भाषा बोली" -> इसे "कंपाइलर डिफ़ॉल्ट" में बदलें।
"सी भाषा बोली" को "कंपाइलर डिफ़ॉल्ट" के बजाय "GNU99" पर सेट किया गया था। पहले मानक GNU99 था, लेकिन अब यह नहीं है। कुछ बिंदु पर Xcode ने लाइब्रेरी प्रोजेक्ट सेटिंग्स को सही तरीके से माइग्रेट नहीं किया और इसलिए इसे GNU99 में सेट कर दिया गया। एक बार जब मैंने इसे GNU99 में बदल दिया तो इसने हर बार अपने सभी कोड को फिर से जमा करना बंद कर दिया!
उत्पाद पर जाएँ -> योजना -> योजना संपादित करें। लेफ्ट साइड कॉलम में बिल्ड चुनें और अनचाहे आश्रितों का पता लगाएं "
लेकिन इस झंडे की जाँच तब की जानी चाहिए जब आप पहली बार इस परियोजना का निर्माण कर रहे हों।
मेरे लिए फिक्स सिर्फ स्टोरीबोर्ड को बंद करना था, मेरे पास स्रोत फाइल थी जो असिस्टेड एडिटर के साथ खोली गई थी और स्टोरीबोर्ड फाइल को भी खोला गया था (स्टोरीबोर्ड को बंद करते हुए --- चूंकि मैं इसमें कोई बदलाव नहीं कर रहा था) सभी अनावश्यक संकलन हटा दिए गए
UPDATED
एकल सबसे बड़ा सुधार जो मैं करने में सक्षम था, वह मेरी परियोजना को संशोधित कर रहा था। विशेष रूप से ORM परत को संशोधित करना जो लगभग हर दूसरे वर्ग में उपयोग किया जाता है। उस कोड को मेरी परियोजना के भीतर एक अलग लक्ष्य में ले जाकर और एक मॉड्यूल के रूप में आयात करके मैं संकलन समय में बहुत सुधार करने में सक्षम था। जब मैं बिल्ड करता हूं तो Xcode अनावश्यक फ़ाइलों को फिर से जोड़ने का फैसला नहीं करता है।
अब मैं तेजी से वृद्धिशील डिबग बिल्ड के लिए एकल फ़ाइल संकलन विधि का उपयोग करता हूं ।
इस लिंक में कुछ अन्य अच्छे सुझाव हैं जिनमें कोड रिफैक्टिंग, https://medium.com/rocket-fuel/optimizing-build-times-in-swift-4-dc493b1cc5f5 शामिल हैं
पुराना
अभी भी मेरे लिए Xcode 9 के साथ एक निरंतर समस्या रही है। आप में से कई की तरह मैं एक बड़ी स्विफ्ट 4 / कोकोपॉड्स प्रोजेक्ट पर कई स्रोत फाइलों के साथ काम कर रहा हूं और हर बार हर फाइल को फिर से संकलित कर रहा है।
अब तक मुझे निम्नलिखित सेटिंग्स के साथ सबसे अच्छे परिणाम मिल रहे हैं। मेरा सुझाव है कि आप इसे आजमाएं और देखें कि यह आपके लिए कैसे काम करता है।
जोड़ा गया कस्टम उपयोगकर्ता-निर्धारित बिल्ड सेटिंग्स,
नोट: मेरे पास पूरे मॉड्यूल अनुकूलन के लिए कस्टम उपयोगकर्ता-निर्धारित सेटिंग नहीं है।
मैंने उपसर्ग हेडर के बारे में अपने कोड के साथ कुछ चीजें बदल दी हैं जो लगता है कि इस समस्या को ठीक कर दिया है। मुझे नहीं पता कि वास्तव में किसने किया था, लेकिन मैं उन सभी को इस उम्मीद में साझा करूंगा कि यह किसी और को वहां से बाहर निकालने में मदद करे। यदि आपके पास कोई उपसर्ग हेडर सेट नहीं है, तो मुझे लगता है कि यह समस्या नहीं है (या समस्या बहुक्रियाशील है)।
@import MyModule
)। (मेरे लिए, यह और चरण 1 एक और एक ही थे।)यदि वह अभी भी काम नहीं करता है, तो आप अपने उपसर्ग शीर्ष लेख से कुछ और आयात हटाने का प्रयास कर सकते हैं। वहाँ कुछ यह ट्रिपिंग हो सकता है ...
ऐसा लगता है कि वे https://forums.developer.apple.com/thread/62737 के अनुसार इस पर सक्रिय रूप से काम कर रहे हैं, लेकिन जोड़ने के लिए एक वर्कअराउंड है
HEADERMAP_USES_VFS = YES
अपने लक्ष्य की बिल्ड सेटिंग्स के तहत (प्रोजेक्ट -> लक्ष्य -> बिल्ड सेटिंग्स -> उपयोगकर्ता परिभाषित)।
पिछले एक महीने से लगातार काम कर रहे किसी अन्य समाधान के बाद, इस समाधान ने आज मेरे लिए हर बार काम किया।
संपादित करें: अभी भी कभी-कभी सब कुछ फिर से शुरू होता है, हालांकि ऐसा लगता है कि यह इस सेटिंग को परिभाषित करने के साथ बहुत कम बार करता है।
@IBDesignable
मेरे विशेष मामले में Xcode निर्माण परियोजना में निर्देशों पर आपके सभी कोड की जांच करें क्योंकि मेरे स्टोरीबोर्ड पर मेरे कुछ विचार थे जो इसमें यह @IBDesignable
विशेषताएँ थीं। दूसरी बात यह है कि मेरे पास मेरा स्टोरीबोर्ड भी अलग विंडो (टैब नहीं) में खोला गया है, जो मेरे एक्सकोड मेक को हमेशा के लिए सिमुलेटर बनाने के लिए प्रेरित करता है।
@IBDesignable
निर्देशों का उपयोग करते हैं ... क्या विशेष रूप से ऐसा कुछ है जिसे हमें देखना चाहिए?
माधुरी माने इस बारे में पूरी तरह से सही हैं। थोड़ा और स्पष्टता जोड़ने के लिए, नोट करने के लिए कुछ महत्वपूर्ण बिंदु:
यह केवल तभी लागू होता है जब आपके पास पुस्तकालयों / रूपरेखाओं पर निर्भरता होती है जो आपके लक्ष्य पर निर्भर करती है।
यदि "अनुमानित निर्भरताएँ ढूंढें" अक्षम है:
परिणाम: आवेदन लक्ष्य के निर्माण से पहले पुस्तकालय नहीं बनाया जाएगा। अनुप्रयोग लक्ष्य बनाने में विफल।
फिक्स: यह सुनिश्चित करने के लिए कि दूसरा परिदृश्य नहीं होता है, आपको आवश्यक लक्ष्यों को लक्ष्य सूची में जोड़ना होगा और उन्हें सही ढंग से ऑर्डर करना होगा।
स्रोत और विषय पर आगे पढ़ने: https://pewpewthespells.com/blog/managing_xcode.html#scheme-action
अब यदि आपकी पूरी परियोजना एक लक्ष्य के भीतर रखी गई है और यह संकलन करने के लिए 4 मिनट लगते हैं, तो आप इसके बारे में बहुत कुछ नहीं कर सकते हैं सिवाय इसके कि इसे ऊपर के लाभ लेने के लिए फ्रेमवर्क में तोड़ दें या यह पता लगा लें कि संकलन लैग कहां है। यदि आप पेंटकोड की तरह कुछ का उपयोग कर रहे हैं या इसमें UIKit कोड के बड़े हिस्से हैं, तो इसे तेजी से बदलकर ऑब्जेक्ट-सी में बदल दिया जाए
Apple ने कल Xcode का नया बीटा संस्करण जारी किया (14 नवंबर)
Xcode 8.2 beta 2
और यह मुद्दा जारी नोट में हल के रूप में चिह्नित किया गया है।
सिस्टम का निर्माण
• केवल छोटे परिवर्तन होने पर Xcode पूरे लक्ष्य का पुनर्निर्माण नहीं करेगा। (28892475)
यह मेरे लिए काम कर रहा है। बिल्ड स्पीड हमेशा की तरह वापस आई। हर कोई जो इस मुद्दे का सामना कर रहा है, उसे कोशिश करनी चाहिए!
कृपया प्रोजेक्ट की बिल्ड सेटिंग पर जाएं और "C Language Dialect" बदलें।
जब आप xcode संस्करण को अपडेट करते हैं तो "C भाषा बोली" को "कंपाइलर डिफ़ॉल्ट" के बजाय "GNU99" पर सेट किया जाता है। कुछ बिंदु पर Xcode ने लाइब्रेरी प्रोजेक्ट सेटिंग्स को सही तरीके से माइग्रेट नहीं किया और इसलिए इसे GNU99 में सेट कर दिया गया। इससे समस्या का समाधान हो जाएगा
यदि आपने स्विफ्ट फ़ाइल में परिवर्तन करना शुरू कर दिया है तो ऐप बनाना शुरू करें, अंतिम टैब पर जाएं और बिल्ड लॉग पर क्लिक करें, "जाँच निर्भरता" चरण के दौरान बिल्ड को रोकें और इसे फिर से चलाएं। दूसरे रन पर यह केवल आपके द्वारा संशोधित फ़ाइलों का निर्माण करना चाहिए। अगर सही तरीके से किया जाए तो मुझे यह हर बार काम आता है। कोई भी प्रोजेक्ट सेटिंग परिवर्तन करने की आवश्यकता नहीं है।
यह Xcode में एक बग प्रतीत होता है।
यदि आप देखते हैं कि ऐप एक पूर्ण निर्माण कर रहा है, तो बिल्ड को रोकें और इस चाल को फिर से आज़माएं।
यदि आपने कोड का उपयोग नहीं किया है तो सीएमडी + सीटीआरएल + आर का उपयोग करें बिना डिबगर संलग्न किए ऐप को चलाने के लिए। ऐप नहीं बनाएंगे लेकिन अनावश्यक समय बचाने में मदद कर सकते हैं।
अनचेक को "इंप्लिकेंट डिपेंडेंसी खोजें" समाधान लागू करके मेरी ओर से जारी किया गया मुद्दा।
लेकिन याद रखें कि यदि आप कोकोपोड्स का उपयोग कर रहे हैं, तो इस सेटिंग को अपने पॉड प्रोजेक्ट से भी इसे लागू करने के लिए लागू करें
उत्पाद -> योजना -> पॉड्स- "yourProjectName"
इसमें भी लागू करें:
उत्पाद -> योजना -> "yourProjectName"
यह मेरी मदद करता है, इसलिए मुझे आशा है कि यह संकेत किसी और की मदद करता है।
धन्यवाद
प्रयास करें: 1. प्रोजेक्ट पर नेविगेट करें 2. बिल्ड सेटिंग्स पर क्लिक करें। 3. जांचें कि ऑप्टिमाइज़ेशनवेल डिबगिंग के लिए किसी के लिए भी सेट नहीं है। 4. उपयोगकर्ता-निर्धारित सेटिंग जोड़ें पर क्लिक करें। हाँ पर SWIFT_WHOLE_MODULE_OPTIMIZATION सेट करें।
fcode संकलन के समय के लिए, IRAMDISK (वर्चुअल मेमोरी डिस्क) का उपयोग कर सकते हैं। संकलन समय को कम करने के लिए बहुत उपयोगी और प्रभावी साधन।
इसके अलावा अक्सर उपयोग किए जाने वाले एप्लिकेशन को स्पीडअप करने के लिए उपयोग कर सकते हैं।
डाउनलोड और उपयोग करने के लिए निम्नलिखित लिंक देखें: http://iramdisk.findmysoft.com/mac/