कैसे खाली कैश और सभी लक्ष्य एक्सकोड 4 और बाद में साफ करें


238

जोनाथन यहाँ सुझाव देते हैं: Xcode में .xib फाइलें शामिल हैं जिन्हें हटा दिया गया है! कि सभी लक्ष्यों को साफ करना और कैश को खाली करना, हटाए गए .xib फ़ाइलों सहित Xcode के साथ समस्या को ठीक करेगा लेकिन मुझे Xcode 4 में कैश को खाली करने का कोई तरीका नहीं मिल सकता है।

Xcode 4 में ऐसा कैसे करें?


यहां मेरा [शेल स्क्रिप्ट सॉल्यूशन] [1] है, जो एक्सकोड 5 और 6. दोनों के लिए, व्युत्पन्न डेटा को हटाता है: stackoverflow.com/a/27977848/1231948
Sheamus

जवाबों:


514

कमांड-ऑप्शन- Shift-K बिल्ड फ़ोल्डर को साफ करने के लिए। इससे भी बेहतर, Xcode छोड़ना और मैन्युअल रूप से ~ / लाइब्रेरी / डेवलपर / Xcode / DerivedData को साफ करना। इसकी सभी सामग्रियों को हटा दें क्योंकि वहाँ एक बग है जहां Xcode आपके प्रोजेक्ट का एक पुराना संस्करण चलाएगा जो कि कहीं है। (Xcode 4.2 आपको व्युत्पन्न डेटा फ़ोल्डर दिखाएगा: विंडो> ऑर्गनाइज़र चुनें और प्रोजेक्ट्स टैब पर जाएँ। Derived Data folder name के दाईं ओर स्थित तीर पर क्लिक करें।)

सिम्युलेटर में, आईओएस सिम्युलेटर> रीसेट सामग्री और सेटिंग्स चुनें।

अंत में, पूर्णता के लिए, आप / var / फ़ोल्डरों की सामग्री को हटा सकते हैं ; कुछ कैशिंग वहाँ भी होता है।

चेतावनी: हटाने / var / फ़ोल्डर्स के कारण समस्याएँ हो सकती हैं, और ऐसा करने के बाद आपको अपने ऑपरेटिंग सिस्टम को सुधारने या पुनर्स्थापित करने की आवश्यकता हो सकती है।

संपादित करें: मैंने अभी सीखा है कि यदि आप / var / फ़ोल्डर्स के साथ हाथापाई करने से डरते हैं / तो आप टर्मिनल में निम्नलिखित कमांड का उपयोग अधिक लक्षित तरीके से हटाने के लिए कर सकते हैं:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

संपादित करें: स्विफ्ट से संबंधित कुछ समस्याओं के लिए मैंने इसे ~ / Library / Caches / com.apple.dt.Xcode को हटाने के लिए उपयोगी पाया है । जब आप ऐसा करते हैं तो आप बहुत कुछ खो देते हैं, जैसे कि डाउनलोड किए गए डॉक्यूमेंट डॉक सेट की आपकी अतिरिक्त प्रतियां, लेकिन यह इसके लायक हो सकता है।


6
अच्छा, पथ की सफाई: लाइब्रेरी / डेवलपर / Xcode / DerivedData + सिम्युलेटर कार्यों की सामग्री और सेटिंग को रीसेट करना!
टिम्मे

10
पथ मेरी घरेलू निर्देशिका में दिखाई देता है (नोट टिल्ड): ~ / पुस्तकालय / डेवलपर / Xcode / DerivedData शायद यह दूसरों के लिए स्पष्ट था, लेकिन मामले में किसी और के पास मुद्दा है ...
विक्टर वान ही

37
Hehe, एक übern00b होने के नाते मैंने डिलीट / var / db किया जहाँ मुझे कुछ मिला जो Xcode / my प्रोजेक्ट से आया था। मुझे फ़ाइल सिस्टम में पांच घंटे की ट्रैशेड जर्नलिंग की लागत, शेर की मरम्मत और पुनर्स्थापना आदि की चेतावनी दी गई है! :-)
जोनास बिस्रॉम

4
@ जोनास को मैंने "डिलीट / var / फ़ोल्डर्स" सलाह के लिए एक चेतावनी जोड़ने के लिए मजबूर महसूस किया। यह uninitiated के लिए नहीं है!
LearnCocos2D

7
Rm -rf / var / फ़ोल्डरों को sudo के साथ न चलाएं या आप खुद ही मरम्मत करना समाप्त कर देंगे :)
जोसिप बी।

68

Command-Option-Shift-K इसे करना चाहिए। वैकल्पिक रूप से, उत्पाद मेनू पर जाएं, विकल्प कुंजी दबाएं, अब "क्लीन" विकल्प "क्लीन बिल्ड फ़ोल्डर ..." में बदल जाएगा।


नहीं, बहुत बुरा है .. मैं बस बदल दिया और एक xib फ़ाइल का नाम बदला और एप्लिकेशन को साफ कर दिया जैसा आपने कहा था, लेकिन यह अभी भी त्रुटियों के बिना ठीक लोड करता है।
तीये की

2
वाह, मैक ओएस एक्स मेनू के लिए कि Alt कुंजी चाल के बारे में नया कभी नहीं !!! यह वास्तव में "अल्ट" के अर्थ को परिभाषित करता है।
trusktr

19

निम्न करने के अलावा, आप इस समस्या का अनुभव कर सकते हैं यदि आपके ऐप की स्टोरीबोर्ड की फाइलें स्थानीय हैं। सबसे पहले, इनमें से प्रत्येक करें:

  • साफ बिल्ड
  • सिम्युलेटर रीसेट करें
  • Xcode पुनरारंभ करें
  • ~ / लाइब्रेरी / डेवलपर / Xcode / DerivedDataDerivedData में अपने फ़ोल्डर को हटा दें
  • कंप्यूटर को पुनः शुरू करें

आखिरकार मेरे लिए जो काम किया गया, वह स्टोरीबोर्ड स्थानीयकरण फ़ाइलों को फिर से जनरेट कर रहा था और अंग्रेजी स्थानीयकरण को हटा रहा था (जो कि आधार रहित था क्योंकि बेस लोकेल अंग्रेजी है)। अपने स्टोरीबोर्ड स्ट्रिंग्स को पुनः लोड करने के लिए, StackOverflow पर यह उत्तर देखें

मैंने देखा था कि मेरे स्टोरीबोर्ड के गैर-पाठ भागों को अपडेट किया जा रहा था, लेकिन स्थानीय पाठ को नहीं। यदि आपके ऐप में स्थानीयकरण है, तो मैं यह सुनिश्चित करने के लिए जाँच करूंगा कि आपके स्थानीयकरण अपडेट किए गए हैं (भले ही वे .stringsफ़ाइलें हों )।


2
/ Var / फ़ोल्डर की सामग्री (संपूर्ण फ़ोल्डर नहीं) को हटाना मेरे लिए था! यदि आप /var/folders...Choose खोजक के मेनू से फ़ोल्डर पर जाएं, और फ़ोल्डर के स्थान के रूप में / var / दर्ज करें।
पेट्रीसिया

+1 / var / फ़ोल्डरों के निर्देश पर ... DerivedData की सफाई और डिलीट करना आंशिक रूप से काम करता है लेकिन किसी ने यह चाल
चली है

1
1. क्लीन बिल्ड 2. रीसेट सिम्युलेटर 3. एक्सकोड को पुनरारंभ करें जिसने मेरी समस्या को हल किया।
एलन डोंग

चेतावनी! खबरदार कि सामग्री को हटाने से /var/folders/गंभीर समस्याएं हो सकती हैं और परिणामस्वरूप पुनर्प्राप्ति कंसोल से OSx को पूरी तरह से पुनर्स्थापित करने में परिणाम हो सकता है!
मैग्नस डब्ल्यू

18

मुझे कमांड + ऑप्शन + शिफ्ट + के के अलावा एक और तरीका मिला। XCode 4.2 में एक आयोजक है जिसे शीर्ष-दाएं आइकन से खोला जा सकता है। आप वहां से सभी अभिलेखागार और सहेजे गए परियोजना विकल्पों को साफ कर सकते हैं। इससे मेरी स्थिति में मदद मिली (मैं मेनबंडल में पुरानी हटाए गए फ़ाइलों को देख रहा था)।


3
हाँ यह सफाई की तुलना में एक आसान तरीका है ~ / पुस्तकालय / डेवलपर / Xcode / DerivedData मैन्युअल रूप से
Tieme

10

मैं अपने सिर से बाल खींच रहा हूं क्योंकि मुझे लगा कि मुझे भी यही समस्या है। ऐप का निर्माण करते समय मुझे अपने iPhone पर वैसा ही परिणाम नहीं मिला जैसा कि सिम्युलेटर पर।

समस्या यह थी कि मैंने किसी तरह MainStoryboard.storyboard फ़ाइल का स्थानीयकृत संस्करण बनाया था। इसलिए जब मैंने अपने फोन पर ऐप चलाया तो इसमें Sat संस्करण दिखाया गया ... और सिम्युलेटर ने अंग्रेज़ी संस्करण दिखाया।

हाँ, मैं नया हूँ! :)


2
मुझे भी ऐसी ही समस्या थी। क्या कमांड-ऑप्शन-शिफ्ट-के का कोई फायदा नहीं हुआ। निकाला गया ... DerivedData, कोई हल नहीं। शीर्ष स्तर XIB को बदलने से केवल अंग्रेजी संस्करण बदल जाता है, और मैं XIB के डच संस्करण के साथ परीक्षण कर रहा था। उच्छ्वास ...
मछली पालन

1
इसके अलावा, इस बात से अवगत रहें कि आपके ऐप के स्थानीयकरण के तरीके हैं जहाँ प्रत्येक भाषा के लिए अलग-अलग पाठ फ़ाइलें बनाई जाती हैं। ऐसे मामलों में, .xib को बदलना कोई काम नहीं करता है।
dandan78

7

इस छोटे से रूबी स्क्रिप्ट का/var/folders उपयोग करने के लिए सभी व्युत्पन्न डेटा और मॉड्यूल कैश को हटाने के लिए ।

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

यह सिर्फ fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/मेरे लिए एक त्रुटि का हल है ।


1
स्पष्ट बग के कारण "घातक त्रुटि: विकृत या दूषित एएसटी फ़ाइल: 'मॉड्यूल लोड करने में असमर्थ" और Xcode द्वारा सुझाए गए सौम्य समाधान की विफलता अभी भी Xcode 6.1 में हो रही है। और Xcode छोड़ने और मैन्युअल रूप से साफ करने का समाधान ~ / Library / Developer / Xcode / DerivedData मैन्युअल रूप से अभी भी काम करता है। मुझे वहां सब कुछ साफ करने की आवश्यकता नहीं थी; सिर्फ दो सबफ़ोल्डर: मॉड्यूलचैच, और सबफ़ोल्डर जिसका नाम समस्या परियोजना के लिए प्रासंगिक है।
जेरी क्रिनॉक

5

मुझे Xcode 5.1 के साथ कुछ समस्याएं थीं, जब मैंने डॉक्टर की खिड़की खोली थी।

मैं इसके कारण के बारे में निश्चित नहीं हूं, क्योंकि मैं भी डॉक्ससेट अपडेट कर रहा था, जबकि मैंने खिड़की खोली थी।

खैर, Xcode 5 में मॉड्यूल निर्देशिका अब व्युत्पन्न डेटा फ़ोल्डर के भीतर रहती है, जिसे मैंने स्पष्ट कारणों से हटाया नहीं था। मैंने ~ Xcode को फिर से शुरू करने के बाद ~ / Library / Developer / Xcode / DerivedData / ModuleCache और ~ / Library / Preferences / com.apple.Xcode.plist की सामग्री को डिलीट कर दिया ।


1

"डेटा मॉडल" का उपयोग करते समय, इंस्पेक्टर से लेकर कक्षाओं को संचालित करने के विकल्प मौजूद हैं, मेरे लिए यह मामला था क्योंकि पहले से ही मौजूदा नाम वाला एक वर्ग था।

कोडजेन: इसे मेरे लिए हल किया।

यहां छवि विवरण दर्ज करें



0

आपको xib फ़ाइल के बारे में सावधान रहना होगा। मैंने उपरोक्त सभी की कोशिश की और मेरे लिए कुछ भी काम नहीं किया। मैं xib में परिभाषित कस्टम UIButtons का उपयोग कर रहा था, और यह महसूस किया कि यह इस तथ्य से संबंधित हो सकता है कि मैंने वहां विशेषताओं को सौंपा था जो प्रोग्रामेटिक रूप से नहीं बदल रहे थे। यदि आपने छवियों या पाठ को वहां परिभाषित किया है, तो उन्हें हटा दें। जब मैंने किया, मेरे प्रोग्रामेटिक परिवर्तन प्रभावी होने लगे।


0

यहां मेरा शेल स्क्रिप्ट सॉल्यूशन है , जो व्युत्पन्न डेटा को हटाता है और एक्सकोड 4, 5 और 6 के लिए एक प्रोजेक्ट की कैश्ड परिसंपत्तियों को साफ करता है।

कभी-कभी, केवल व्युत्पन्न डेटा निर्देशिका पर rm -rf को कॉल करना एक सुस्त फ़ाइल या दो को छोड़ देता है, लेकिन मेरी स्क्रिप्ट तब तक चलती है जब तक कि सभी फ़ाइलें हटा नहीं दी जाती हैं।


0

मैंने लगभग सब कुछ करने की कोशिश की, लेकिन मदद नहीं कर सका, इससे मुझे क्या मदद मिली कि वह SIP (सिस्टम इंटीग्रेशन प्रोटेक्शन) को अक्षम कर रहा था, यह काम नहीं करता, मुझे नहीं पता कि कब और कैसे होता है, लेकिन सिस्टम फाइल कहीं गड़बड़ हो जाती है और इसका कारण बनता है ... हालांकि जोखिम हो सकता है यह स्पष्ट रूप से अक्षम करने के लिए

यहां कैसे

अपने मैक पर 1.Power और रिकवरी पार्टीशन को एक्सेस करने के लिए [कमांड] + [R] कीज़ को दबाए रखें।

2. पुनर्प्राप्ति विभाजन से, मेनू बार से उपयोगिताएँ पर क्लिक करें और फिर टर्मिनल चुनें।

3. टर्मिनल में निम्नलिखित कमांड को दर्ज करें और इसे निष्पादित करने के लिए Enter दबाएं: csrutil अक्षम करें

4. कमांड निष्पादित होने पर, टर्मिनल से बाहर निकलें और मैक को रिबूट करें। जब आप ओएस एक्स में वापस लॉग इन करते हैं, तो एसआईपी अक्षम हो जाएगा।


1
वास्तव में जोखिम भरा लगता है। SIP क्या करता है?
तीये की

सिस्टम इंटीग्रिटी प्रोटेक्शन सिस्टम फ़ाइलों और निर्देशिकाओं की सुरक्षा करता है जो सुरक्षा के लिए ध्वजांकित हैं। आमतौर पर आपके सिस्टम में अधिक सुरक्षा जोड़ता है, यहां तक ​​कि sudo कमांड की शक्ति को भी सीमित करता है
कास्त्रो ज्वेलिथिनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.