क्या मैं Xcode के अनावश्यक डिवाइस सिमुलेटर को हटा सकता हूं?


64

मैंने पाया कि मेरे लैपटॉप पर Xcode का अधिक संग्रहण होता है, इसलिए मैं Xcode में अनावश्यक फ़ाइलों को हटाने का प्रयास कर रहा हूं।

के अंतर्गत चार निर्देशिकाएँ हैं Application/Xcode.app/Contents/Developer/Platforms/। मुझे लगता है कि WatchSimulator.platformऔर AppleTVSimulator.platformआवश्यक नहीं हैं, क्योंकि मैं Xcode का उपयोग लगभग केवल मूल iOS विकास के लिए करता हूं।

मैं जानना चाहूंगा कि क्या मैं उन प्लेटफार्मों निर्देशिकाओं को सीधे हटा सकता हूं?

निर्देशिकाएँ


बस एक FYI करें ... आप केवल दिखाए गए स्थान का लगभग आधा हिस्सा हासिल करने जा रहे हैं, क्योंकि वे संकुचित होते हैं। गेट इन्फो शीट को देखें, उदाहरण के लिए वॉचओएस.प्लाटिका के लिए मेरे सिस्टम पर यह 2,212 वस्तुओं के लिए 50,579,830 बाइट्स (डिस्क पर 28.2 एमबी) और AppleTVSimulator.platform 29,705 वस्तुओं के लिए 1,865,477,227 फीट (डिस्क पर 1.1 जीबी) दिखाता है। तो आप अपने ओपी में दिखाए गए मूल्यों के रूप में ज्यादा खाली जगह हासिल नहीं करेंगे।
14:34 पर user3439894

फाइलें संकुचित होती हैं और एपल्स का HFS + फाइल सिस्टम ट्रांसपेरेंट कम्प्रेशन को सपोर्ट करता है लेकिन फाइंडर और lsटर्मिनल में फाइल को देखने के लिए झंडे का अभाव होता है , इसमें hfsCompression का उपयोग किया जाता है , गेट इंफो शीट का उपयोग करें जहां आप डिस्क मान को नाटकीय रूप से अलग-अलग देख सकते हैं फिर बाइट्स में साइज शो। । वहाँ एक उपयोगिता एक तीसरी पार्टी है, जो स्रोत कोड है, तो एक है, यह खुद को संकलित करने के लिए चाहता है शामिल द्वारा लिखित है afsctool । इसकी क्षमताओं के बीच मौजूदा एचएफएस + संपीड़ित फ़ाइल (एस) के बारे में जानकारी प्राप्त करना है।
15:34 पर user3439894

आपकी ड्राइव पर इन बड़ी फ़ाइलों को निर्धारित करने में कौन सा प्रोग्राम आपकी मदद कर रहा है?
पिसिस

1
@ प्रिसिंपल मुझे ओमनीडिस्क स्वीपर की तरह लगती है। यह उपकरण APFS और संपीड़न के लिए अद्यतन नहीं किया गया है, हालांकि ऐसा लगता है कि उनके पास अभी कुछ नए परीक्षण हैं।
जैच लिप्टन

1
@Zach Lipton, यदि ओपी हाई सिएरा और APFS चला रहा है, तो फाइलें संकुचित नहीं हो सकती क्योंकि APFS अभी तक संपीड़न का समर्थन नहीं करता है। या 10.13.1 में यह बदलाव आया?
user3439894

जवाबों:


63

हां, आप ऐसे किसी भी सिम्युलेटर को हटा सकते हैं जिसका आप उपयोग नहीं करते हैं। मैं इसे नियमित रूप से करता हूं जब मैं पुराने iOS संस्करणों का समर्थन करना बंद कर देता हूं।

यदि आप उन्हें हटा देते हैं और फिर आप पाते हैं कि आपको भविष्य में किसी बिंदु पर उनकी आवश्यकता है, तो आप उन्हें Apple की डेवलपर साइट से फिर से डाउनलोड कर सकते हैं।

उन्हें हटाने का सबसे अच्छा तरीका Xcode है। के पास जाओ Window -> Devices and Simulators। यह Xcode में आपके द्वारा उपयोग किए जाने वाले सभी उपकरणों के साथ एक नई विंडो खोलेगा।

सबसे ऊपर, टैप करें Simulatorsऔर आपको बाईं ओर एक सूची दिखाई देगी।

वहां से, वह सिम्युलेटर ढूंढें जिसे आप हटाना चाहते हैं और Cntl- क्लिक करें (या राइट-क्लिक करें) और चुनें Delete

मैं प्रत्येक सिम्युलेटर के साथ ऐसा करता हूं जो प्रत्येक iOS संस्करण में चलता है जिसे मैं अब समर्थन नहीं करता हूं।


7
मुझे पता है कि यह पोस्ट कुछ साल पुरानी है, लेकिन यह सिम्युलेटर को हटाने के लिए प्रकट नहीं होता है, बल्कि एक्सकोड में सिर्फ इसे सूचीबद्ध करता है। इसलिए यदि किसी को डिस्क स्थान को बचाने के लिए इसे हटाने की आवश्यकता है, तो यह सही तरीका नहीं है।
सीन पैटरसन 23

34

Xcode अब सभी उपयोगकर्ताओं के साथ सिमुलेटर साझा करता है। तो, आपको निम्नलिखित फ़ोल्डर से सिमुलेटर को हटाने की आवश्यकता है:

/Library/Developer/CoreSimulator/Profiles/Runtimes

उदाहरण के लिए:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes
sudo rm -rf iOS\ 8.4.simruntime/
sudo rm -rf iOS\ 9.3.simruntime/

चीयर्स!


29

आप टर्मिनल में इस कमांड के साथ सभी अनुपलब्ध सिमुलेटर को आसानी से हटा सकते हैं:

xcrun simctl delete unavailable

1
वास्तव में, यह बहुत कुछ नहीं करता है। यदि आप चलाते हैं xcrun simctl listतो आप देखेंगे कि केवल ~ 10% उपकरणों को "अनुपलब्ध" माना जाता है। इसके अलावा डिवाइस यहां असली स्पेस हॉग नहीं हैं। iOS रनटाइम हैं। @ फ्रैंकोइस का जवाब अभ्यास में बेहतर है।
जोशुआकॉकरेल

1
@joshuakcockrell जरूरी नहीं; पुराने सिम्युलेटर संस्करणों को संचय करने के वर्षों के बाद, इसने मेरे मामले में एक हास्यास्पद जगह खाली कर दी। इसलिए मुझे लगता है कि हम्म।
पॉल कैंटरेल

मैंने wc -l'अनुपलब्ध' और 128 आउट के साथ सूची में ( ) 148 पंक्तियों को गिना । ऊपर डिलीट कमांड ने मुझे 14GB वापस दिया
क्रेग

15

@ Fsb के उत्तर के बावजूद सिम्युलेटर को "इंस्टेंस" को हटाने की अनुमति देता है, पुराने सिम्युलेटर प्लेटफार्मों द्वारा उपयोग किए जाने वाले एक विशाल स्थान को मुक्त करने का सही तरीका जो अब आवश्यक नहीं है, निम्नलिखित फ़ोल्डर में जा रहा है:

~/Library/Developer/Xcode/iOS DeviceSupport

और उन सिम्युलेटरों / प्लेटफार्मों के अनुरूप फ़ोल्डर्स हटा दें जिनकी आपको अब आवश्यकता नहीं है।

इसके अतिरिक्त, इस और अन्य युक्तियों के साथ एक बहुत अच्छा लेख है:


3
ऐसा लगता है कि /Library/Developer/Xcodeनए macOS अपडेट के बाद हटा दिया गया है। मेरे द्वारा इसे कहीं भी ढूंढा जा सकता है।
सुहैब

1
@ शुहाब आप शुरुआती टिल्ड " ~ " को भूल गए जो आपके होम डायरेक्टरी पर रास्ता शुरू करता है। सही निर्देशिका है: ~/Library/Developer/Xcode/iOS DeviceSupport
रिकार्डो बारसो

7

जहां 2019+ कैटालिना में Xcode सिमुलेटर को स्टोर करता है, Xcode 11.0

runtimes

$ open /Library/Developer/CoreSimulator/Profiles/Runtimes

उदाहरण के लिए: iOS 13.0, watchOS 6.0ये सबसे अंतरिक्ष ले, अब तक। हर एक ~ 5GB तक हो सकता है

उपकरण

$ open ~/Library/Developer/CoreSimulator/Devices

उदाहरण के लिए: iPhone Xr, iPhone 11 Pro Max। ये आमतौर पर <15 mb होते हैं।

व्याख्या

सिमुलेटर को रनटाइम और उपकरणों के बीच विभाजित किया जाता है। यदि आप चलाते $ xcrun simctl listहैं तो आप एक अवलोकन देख सकते हैं, लेकिन यदि आप इन सिमुलेटरों का भौतिक स्थान ढूंढना चाहते हैं, तो इन निर्देशिकाओं को देखें जिन्हें मैंने दिखाया है।

आपके द्वारा समर्थित रनटाइम को हटाना पूरी तरह से सुरक्षित है। आप चाहें तो इन्हें बाद में फिर से इंस्टॉल कर सकते हैं।


1
धन्यवाद, इससे मुझे बहुत मदद मिली!
एसिडो

5
  • सभी सिमुलेटर xcrun simctl list devicesया सूचीबद्ध करने के लिएxcrun simctl list --json

  • विशिष्ट उपकरण को हटाने के लिए xcrun simctl delete <device udid>

  • पुराने उपकरणों को हटाने के लिए जो अब समर्थित नहीं हैं xcrun simctl delete unavailable


आप का उपयोग कर सकते हैं xcrun simctl delete allमुझे लगता है
Revau.lt

1

Terminal.app खोलें और निम्नलिखित चलाएँ:

cd /Library/Developer/CoreSimulator/Profiles/Runtimes

अब iOS संस्करण टाइप करें, जिसके लिए आप नीचे कमांड में सिमुलेटर हटाना चाहते हैं, उदाहरण के लिए, यदि आप iOS 12.0 के लिए हटाना चाहते हैं, तो रन करें:

sudo rm -rf iOS\ 12.0.simruntime/


1

IOS संस्करण द्वारा सिमुलेटर को हटाने के लिए:

यदि आप केवल एक विशिष्ट संस्करण के लिए सिमुलेटर को हटाना चाहते हैं, और आप fastlaneस्थापित होने के लिए हैं , तो आप एक इंटरैक्टिव रूबी शेल लॉन्च कर सकते हैं और सभी iOS 10 सिमुलेटर को हटाने के लिए निम्न कमांड चला सकते हैं:

# launch the interactive ruby shell (irb)
$ irb

# require the device manager capabilities of fastlane core
irb(main):001:0> require 'fastlane_core/device_manager'

# delete all iOS 10 simulators
irb(main):002:0> FastlaneCore::Simulator.delete_all_by_version(os_version: "10.0")
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.