xcode simulator: как удалить старые ненужные устройства?

<p>я использую xcode 4.3.1 ios-simulator, который изначально поддерживает только ios 5.1.</p><p>мне нужно протестировать мой код с ios 4.3, поэтому я использовал функцию xcode "install", чтобы установить его, как описано в <a href="https://apple.stackexchange.com/questions/47323">"установка xcode с имитатором устройства ios 4.3?"</a> </p><p>теперь я закончил тестирование, но не могу найти способ удалить части 4.3 ("iphone 4.3 simulator" и "ipad 4.3 simulator"). я хочу уменьшить беспорядок в меню схемы.</p><p>никто из списков рассылки apple xcode не знал ответа!</p><p>правка: обратите внимание, что многое изменилось с xcode 4.3, поэтому рекомендуем всем, кто читает этот взгляд на все ответы. новейшие, такие как стив мозер, могут быть более полезными для вас!</p><p>правка 10/2017: опубликовано в twitter хулио карреттони</p><blockquote> <p>если вы разработчик ios, выполните это:<br> <code>$ xcrun simctl delete unavailable</code><br> это удаляет старые симуляторы xcode, которые больше не используются. для меня это был 6gb сам не пробовал ...</p> </blockquote><p>[кроме того, я только что видел, как расс бишоп упомянул об этом в комментарии ниже ...]</p>

<p>вы пытались просто удалить 4.3 sdk из пакета xcode?</p><blockquote> <p>/applications/xcode.app/contents/developer/platforms/iphonesimulator.platform/developer/sdks</p> </blockquote><p>пожалуйста, также удалите соответствующий файл .dmg в</p><blockquote> <p>~/library/кэша/com.apple.dt.xcode/загрузки</p> </blockquote><p>в <a href="https://stackoverflow.com/questions/11672945/xcode-4-4-simulator-how-to-remove-older-unneeded-devices/11790983#11790983">предотвратить повторную установку xcode</a> снова тот же пакет.</p><hr><p>для xcode> = 6 см. <a href="https://stackoverflow.com/a/30206853/529977">ответ @ praveen-matanam</a> </p>

<p>в xcode 6+ вы можете просто перейти в "меню"> "окно"> "устройства"> "симуляторы" и удалить ненужный имитатор.</p>

<p>в xcode 6 и выше вы можете найти и удалить симуляторы по пути <code>/library/developer/coresimulator/profiles/runtimes</code>. перезапустите xcode для вступления в силу (может не потребоваться).</p>

<h2>октябрь 2018 обновление</h2><p>как уже упоминалось, вы можете использовать <code>xcrun</code>, чтобы сделать несколько вещей:</p><ul> <li><code>xcrun simctl list devices</code> или <code>xcrun simctl list --json</code> для отображения списка всех симуляторов</li> <li><code>xcrun simctl delete <device udid></code> для удаления определенного устройства</li> <li><code>xcrun simctl delete unavailable</code> для удаления старых устройств для сред выполнения, которые больше не поддерживаются</li> </ul><p>больше вещей, которые вы можете сделать с <code>xcrun</code> (см. фрагмент кода)</p><div class="snippet" data-lang="js" data-hide="true" data-console="false" data-babel="false"> <div class="snippet-code snippet-currently-hidden"> <pre class="snippet-code-html lang-html prettyprint-override"><code>- `xcrun simctl boot <device udid>` to launch (multiple) simulators - `xcrun simctl io booted recordvideo — type=mp4 ./test.mp4` to record simulator video - `xcrun simctl io booted screenshot ./screen.png` to make screenshot of simulator - `xcrun simctl openurl booted https://google.com` to open url in simulator - `xcrun simctl addmedia booted ./test.mp4` to upload photo or video file (for photos app) - `xcrun simctl get\_app\_container booted <your apps bundle identifier>` to find the app container (where identifier is like *com.bundle.identifier*) - `xcrun simctl help` to explore **more** commands</code></pre></div> </div><h2>оригинальный ответ</h2><p>сентябрь 2017, <strong> xcode 9 </strong></p><h3>runtimes</h3><p>вы найдете их здесь:</p><pre><code>/library/developer/coresimulator/profiles/runtimes </code></pre><p> <a href="https://i.stack.imgur.com/p7e9c.png"><img src="https://i.stack.imgur.com/p7e9c.png" alt="enter image description here"></a> </p><h3>приборы</h3><p>для удаления устройства перейдите сюда:</p><pre><code>~/library/developer/coresimulator/devices </code></pre><p>намного проще удалить их, используя xcode: xcode-> window-> devices and simulators <a href="https://i.stack.imgur.com/84sut.png"><img src="https://i.stack.imgur.com/84sut.png" alt="enter image description here"></a> </p><p>помогите xcode "забыть" о средах выполнения и предотвратить их переустановку - удалите файлы .dmg здесь:</p><pre><code>~/library/caches/com.apple.dt.xcode/downloads </code></pre><p>надеюсь это кому-нибудь поможет ????</p>

<p>запустите эту команду в терминале, чтобы удалить симуляторы, к которым нет доступа из текущей версии xcode (8+?), используемой на вашем компьютере.</p><p><code>xcrun simctl delete unavailable</code></p><p>также, если вы хотите вернуть пространство, связанное с симулятором <a href="https://twitter.com/mjtsai/status/1022838770494832643">майкл цай</a> обнаружил, что удаление журналов сима сэкономило ему 30 гб.</p><pre><code>~/library/logs/coresimulator </code></pre>

<p>xcode 4.6 предложит вам переустановить все старые версии симулятора ios, если вы просто удалите sdk. чтобы избежать этого, вы также должны удалить кэш xcode. тогда вам не придется переустанавливать старый sdk при запуске.</p><p>чтобы удалить симулятор ios 5.0, удалите их и перезапустите xcode:</p><ol> <li>/applications/xcode.app/contents/developer/platforms/iphonesimulator.platform/developer/sdks/phonesimulator5.0.sdk</li> <li>~/library/кэша/com.apple.dt.xcode</li> </ol><p>например, после чистой установки xcode я установил симулятор ios 5.0 из настроек xcode. позже я решил, что 5.1 достаточно, но не смог удалить версию 5.0. xcode заставлял меня переустанавливать его при запуске. после удаления файла кеша и sdk он больше не спрашивается.</p>

<p>у меня такая же проблема. мне не хватало места. удаление старых симуляторов устройства не помогло.</p><p>моя проблема с пространством была вызвана xcode. он сохранил все версии ios с тех пор, как я установил xcode.</p><p>удалите ненужную версию ios и освободите место на диске. я сэкономил 50 гб + места.</p><p> <a href="https://i.stack.imgur.com/61miy.png"><img src="https://i.stack.imgur.com/61miy.png" alt="enter image description here"></a> <strong>note</strong> -> если на одном компьютере macos несколько пользователей, обязательно найдите каталог только с той учетной записью, которая изначально установлен xcode.</p>

<p>следуя некоторым из ответов здесь, удаление некоторых симуляторов из моего меню xcode> окно> устройства> симуляторы не помогло моему умирающему дисковому пространству: <a href="https://i.stack.imgur.com/dqdqa.png"><img src="https://i.stack.imgur.com/dqdqa.png" alt="enter image description here"></a> </p><p>однако, перейдя к <code>/users/abdullah/library/developer/xcode/ios devicesupport</code> и запустив <code>du -sh *</code>, я получил все эти парни:</p><pre><code>2.9g 10.0.1 (14a403) 1.3g 10.1.1 (14b100) 2.9g 10.3.2 (14f89) 1.3g 10.3.3 (14g60) 1.9g 11.0.1 (15a402) 1.9g 11.0.3 (15a432) 2.0g 11.1.2 (15b202) 2.0g 11.2 (15c114) 2.0g 11.2.1 (15c153) 2.0g 11.2.2 (15c202) 2.0g 11.2.6 (15d100) 2.0g 11.4 (15f79) 2.0g 11.4.1 (15g77) 2.3g 12.0 (16a366) 2.3g 12.0.1 (16a404) 2.3g 12.1 (16b92) </code></pre><p>все вместе это 33 гб!</p><p>кровавая баня последовала</p><p>увидеть больше деталей <a href="https://stackoverflow.com/questions/29930198/can-i-delete-data-from-ios-devicesupport">здесь</a> </p>

<p>в дополнение к ответу @ childno.de, ваш каталог mac</p><blockquote> <p><code>/private/var/db/receipts/</code></p> </blockquote><p>может по-прежнему содержать устаревшие файлы iphonesimulatorsdk <code>.bom</code> и <code>.plist</code>, например:</p><blockquote> <p><code>/private/var/db/receipts/com.apple.pkg.iphonesimulatorsdk8\_4.bom</code> <code>/private/var/db/receipts/com.apple.pkg.iphonesimulatorsdk8\_4.plist</code></p> </blockquote><p>это может привести к тому, что на вкладке "загрузки" в настройках xcode появится отметка (<code>√</code>) для этой устаревшей версии симулятора.</p><p>чтобы очистить ненужные симуляторы, вы можете выполнить поиск с помощью этой команды bash с вашего терминала mac:</p><blockquote> <p><code>sudo find / -name "*phonesimulator*"</code></p> </blockquote><p>затем перейдите в соответствующие каталоги, чтобы вручную удалить ненужные simulatorsdk</p>

<p>в xcode откройте окно - устройства, затем выберите и удалите устаревшие симуляторы.</p>

<p>я перепробовал все ответы. никто из них не работал для меня.</p><p>то, что работало для меня на sierra + xcode 8.2, собиралось:</p><p><code>/library/developer/coresimulator/devices</code> и удаление всех устройств.</p><p>(возможно, это не сработает для вас, возможно, это <em> является </em> решением в качестве отдельного решения, или, возможно, вам придется сделать это в дополнение к другим ответам, но я сделал все решения здесь и поэтому не уверен, что сделал дело). просто имейте в виду, что некоторые ответы здесь старые и местоположение симулятора изменилось. <a href="https://stackoverflow.com/a/39944791/5175709">ответ snowcrash</a> кажется самым последним.</p>

<p>еще одна вещь, которую вы можете сделать, это изменить цель развертывания на максимальное значение. это предотвратит отображение в меню схемы старых версий.</p><p>для этого перейдите: target-> summary, затем измените цель развертывания.</p>

<p>проблема с этими ответами состоит в том, что с каждым обновлением xcode меню и местоположения будут меняться.</p><p>просто зайдите на <code>/applications/xcode.app/contents/developer/platforms</code> и удалите то, что вам не нужно. xcode начнет нормально. если вас это беспокоит, вы можете просто восстановить из корзины.</p>

<p>я написал однострочный сценарий bash, который удалит <strong>все</strong> ваши симуляторы:</p><pre><code>xcrun simctl list devices | grep -e -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -l1 xcrun simctl delete </code></pre><ul> <li><code>xcrun simctl list devices</code> перечислит все симуляторы, установленные на вашем компьютере</li> <li><code>grep -e -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})"</code> будет захватывать uuid устройства</li> <li><code>xargs -l1 xcrun simctl delete</code> будет пытаться удалить устройство для каждого найденного uuid</li> </ul><p>если вы хотите увидеть все, что он будет выполнять, вы можете добавить <code>echo</code> перед <code>xcrun</code>, т.е.</p><pre><code>xcrun simctl list devices | grep -e -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" | xargs -l1 echo xcrun simctl delete </code></pre>