Xcode Simulator: comment supprimer les anciens appareils inutiles?

211

J'utilise Xcode 4.3.1 iOS-Simulator qui, à l'origine, ne prend en charge que iOS 5.1.

Je dois tester mon code avec iOS 4.3, j'ai donc utilisé la fonction "Installer" de Xcode pour l'installer comme décrit dans "Installer Xcode avec le simulateur d'appareil iOS 4.3?"

Maintenant, j'ai terminé les tests, mais je ne trouve pas de moyen de désinstaller les parties 4.3 ("iPhone 4.3 Simulator" et "iPad 4.3 Simulator"). Je veux réduire l'encombrement dans le menu Scheme.

Personne sur la liste de diffusion Xcode d'Apple ne connaissait la réponse!

EDIT: notez que beaucoup de choses ont changé depuis Xcode 4.3, alors suggérez à tous ceux qui lisent ce regard toutes les réponses. Les plus récents comme Steve Moser pourraient vous être plus utiles!

EDIT 10/2017: Publié sur Twitter par Julio Carrettoni

Si vous êtes un développeur iOS, exécutez ceci:
$ xcrun simctl delete unavailable
il supprime les anciens simulateurs que Xcode n'utilise plus. Pour moi, c'était 6 Go. Je ne l'ai pas essayé moi-même ...

[De plus, je viens de voir que Russ Bishop l'a déjà mentionné dans un commentaire ci-dessous ...]

David H
la source

Réponses:

172

Avez-vous essayé de supprimer le SDK 4.3 du package Xcode?

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs

veuillez également supprimer le fichier .dmg correspondant dans

~ / Bibliothèque / Caches / com.apple.dt.Xcode / Téléchargements

pour empêcher Xcode de réinstaller le même package à nouveau.


pour XCode> = 6 voir la réponse de @ praveen-matanam

childno͡.de
la source
3
Tu es un génie! Merci beaucoup! Je ne peux pas croire que non sur le serveur de liste Xcode le savait. Je regarde à plusieurs endroits mais pas là où tu l'avais suggéré.
David H
Cela ne fonctionnera pas dans xcode 4.5.2. Dès que vous redémarrez le compilateur, il vous demandera de réinstaller les anciens périphériques hérités. Annuler quittera xcode, vous êtes donc obligé de réinstaller.
Alejandro Luengo
C'est vrai Alejandro, Apple semble avoir changé la "licence" pour que vous ayez toujours besoin d'un compte de développeur valide et que vous deviez installer toutes les extensions encore et encore à chaque mise à jour majeure de l'application .. les systèmes hérités ne sont généralement pas pris en charge aussi; (
childno͡.de
1
Voir la réponse de Dan Reese ci-dessous pour quelque chose qui fonctionne sur Xcode 4.6.
BJ Homer
2
A travaillé pour Xcode 6.3.1, avec cette réponse stackoverflow.com/a/30206853/286618 . Ancienne documentation effacée et économisé 9 Go !!!
RoLYroLLs
204

Dans Xcode 6+, vous pouvez simplement aller dans Menu> Fenêtre> Périphériques> Simulateurs et supprimer un simulateur dont vous n'avez pas besoin.

tomi44g
la source
1
La question était pertinente dans la version 4 et probablement 5. Comme vous pouvez le voir, c'était assez difficile. Depuis lors, j'ai évité d'utiliser des simulateurs plus anciens.
David H
3
C'est exact. Si vous voulez que les simulateurs soient «vraiment partis» ou les réinstaller dans Xcode -> Préférences -> Téléchargements, vous devez supprimer le runtime du simulateur comme indiqué ci-dessous stackoverflow.com/a/30206853/1344293
mathz
Merci, c'est la façon la plus simple de gérer les simulateurs. au lieu de supprimer les simulateurs des dossiers xcode. Cela fonctionne pour moi :)
Chirag
Comment supprimer un appareil avec une ancienne version iOS? La fenêtre des appareils affiche uniquement les simulateurs avec iOS 9.1 (sur Xcode 7.1). Je voudrais éviter de modifier device_set.plist et de supprimer des dossiers dans le Finder.
bio
Vous pouvez également utiliser ce script pour recréer des simulateurs: gist.github.com/cabeca/3ff77007204e5479f7af
tomi44g
154

Dans Xcode 6 et supérieur, vous pouvez rechercher et supprimer les simulateurs du chemin /Library/Developer/CoreSimulator/Profiles/Runtimes. Redémarrez Xcode pour prendre effet (peut ne pas être nécessaire).

Praveen Matanam
la source
6.4 ici. Nécessaire pour redémarrer ma machine pour qu'elle prenne effet.
aasatt
2
7.2 - aucun redémarrage requis
TheEye
xcode 8.0 avait besoin d'un redémarrage pour effacer les simulateurs invalides dans la fenêtre des appareils
Doug Amos
2
@thiagoveloso c'est parce que vous n'avez installé aucune autre version de simulateurs, mais iOS 10.0+. Je n'ai eu que des .simruntimefichiers 9.3, 8.4 et 8.3
Aleksey Potapov
1
Je peux aussi être~/Library/Developer/...
Roberto
127

Mise à jour d'octobre 2018

Comme cela a été mentionné, vous pouvez utiliser xcrunpour faire quelques choses:

  • xcrun simctl list devicesou xcrun simctl list --jsonpour lister tous les simulateurs
  • xcrun simctl delete <device udid> supprimer un appareil spécifique
  • xcrun simctl delete unavailable supprimer les anciens appareils pour les temps d'exécution qui ne sont plus pris en charge

Plus de choses que vous pouvez faire avec xcrun(voir l'extrait de code)

Réponse originale

Septembre 2017, Xcode 9

Runtimes

Tu les trouveras ici:

/Library/Developer/CoreSimulator/Profiles/Runtimes

entrez la description de l'image ici

Dispositifs

Pour supprimer des appareils, allez ici:

~/Library/Developer/CoreSimulator/Devices

Beaucoup plus facile de les supprimer, utilisez Xcode: Xcode-> Window-> Devices and Simulators entrez la description de l'image ici

Aider Xcode à "oublier" les runtimes et à éviter de les réinstaller - supprimez les fichiers .dmg ici:

~/Library/Caches/com.apple.dt.Xcode/Downloads

J'espère que cela aidera quelqu'un 🙂

Pavel Kovalev
la source
8
Veuillez ne pas supprimer les périphériques du système de fichiers; utiliser xcrun simctl delete <device udid>. Vous pouvez également exécuter xcrun simctl delete unavailablepour supprimer les anciens appareils pour les exécutions qui ne sont plus prises en charge.
russbishop
1
Je n'ai pas ~ / Library / Caches / com.apple.dt.Xcode / Downloads (aucun dossier Téléchargements dans ~ / Library / Caches / com.apple.dt.Xcode /), je me demande pourquoi
auspicious99
1
le chemin de dossier que vous avez répertorié n'existe pas, Xcode 9.4
Peter Cullen
C'est ce que je cherchais: ne pas supprimer les appareils simulés 12.2 un par un, mais supprimer tout le simulateur 12.2 du système. Le chemin a fonctionné avec XCode 10.3. Après la suppression, j'ai dû le redémarrer et le nombre de simulateurs a été divisé par deux.
catanore
77

Exécutez cette commande dans le terminal pour supprimer les simulateurs qui ne sont pas accessibles à partir de la version actuelle de Xcode (8+?) Utilisée sur votre machine.

xcrun simctl delete unavailable

De plus, si vous cherchez à récupérer de l'espace lié au simulateur, Michael Tsai a constaté que la suppression des journaux de simulation lui permettait d'économiser 30 Go.

~/Library/Logs/CoreSimulator
Steve Moser
la source
2
Merci! Évidemment, la question d'origine était pour Xcode 4, donc les choses ont beaucoup changé depuis lors!
David H
2
Il libère près de 20 Go pour moi. Merci
Libor Zapletal
26

Xcode 4.6 vous demandera de réinstaller toutes les anciennes versions du simulateur iOS si vous supprimez simplement le SDK. Pour éviter cela, vous devez également supprimer le cache Xcode. Ensuite, vous ne serez pas obligé de réinstaller l'ancien SDK au lancement.

Pour supprimer le simulateur iOS 5.0, supprimez-les, puis redémarrez Xcode:

  1. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/PhoneSimulator5.0.sdk
  2. ~ / Bibliothèque / Caches / com.apple.dt.Xcode

Par exemple, après avoir fait une nouvelle installation de Xcode, j'ai installé le simulateur iOS 5.0 à partir des préférences de Xcode. Plus tard, j'ai décidé que 5.1 était suffisant mais je n'ai pas pu supprimer la version 5.0. Xcode m'a forcé à le réinstaller au lancement. Après avoir supprimé le fichier cache et le SDK, il n'a plus demandé.

Dan Reese
la source
1
Une réponse un peu plus précise ici , même si je ne l'ai pas encore testée moi-même.
Dan Reese
22

J'ai eu le même problème. Je manquais d'espace.

La suppression d'anciens simulateurs d'appareils n'a pas aidé.

Mon problème d'espace a été causé par xCode. Il a conservé une copie de chaque version iOS sur mon macOS depuis que j'ai installé xCode.

Supprimez la version iOS dont vous ne voulez pas et libérez de l'espace disque. J'ai économisé 50 Go + d'espace.

entrez la description de l'image ici REMARQUE -> si vous avez plusieurs utilisateurs sur une seule machine macOS, assurez-vous de trouver le répertoire UNIQUEMENT avec le compte d'utilisateur qui a initialement installé xCode.

rustyMagnet
la source
Je compte 9G au dessus - comment avez-vous récupéré 75G?
David H
salut @DavidH - 75 Go était avant mon nettoyage. Comme je travaille avec xCode depuis des années, xCode avait installé silencieusement toutes les variantes d'iOS 7, 8, 9 et 10 sur ma machine. En réalité, je n'ai probablement besoin que d'iOS10 et d'iOS11.
rustyMagnet
1
C'est super - je n'ai jamais connu cet endroit. J'avais des dizaines de Go ici, ayant installé toutes les versions de Xcode.
Echelon
Le dossier existe avec xCode 9.4 @PeterCullen. Il vous suffit d'y accéder à partir du compte utilisateur qui a initialement installé xCode. J'ai deux comptes d'utilisateurs sur mon Mac qui partagent xCode. Seul le compte d'utilisateur qui a installé xCode peut afficher ce dossier.
rustyMagnet
1
ouvrez-vous le Finder et sélectionnez "Aller au dossier"? La bibliothèque est un dossier caché, par défaut.
rustyMagnet
9

en suivant certaines des réponses ici, en supprimant certains simulateurs de mon menu Xcode> Fenêtre> Périphériques> Les simulateurs n'ont rien fait pour aider mon espace disque à mourir: entrez la description de l'image ici

cependant, cd ~/Library/Developer/Xcode/iOS\ DeviceSupportet en courant, du -sh *j'ai tous ces gars:

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)

Ensemble, c'est 33 Go!

Un bain de sang s'en est suivi

voir plus de détails ici

abbood
la source
6

En plus de la réponse @ childno.de, votre répertoire Mac

/private/var/db/receipts/

peut encore contenir un iPhoneSimulatorSDK obsolète .bomet des .plistfichiers comme celui-ci:

/private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.bom /private/var/db/receipts/com.apple.pkg.iPhoneSimulatorSDK8_4.plist

Celles-ci pourraient faire apparaître dans l'onglet Téléchargements des préférences de Xcode une coche ( ) pour cette version de simulateur obsolète.

Pour purger les simulateurs indésirables, vous pouvez effectuer une recherche à l'aide de cette commande bash à partir de votre terminal Mac:

sudo find / -name "*PhoneSimulator*"

Ensuite, accédez aux répertoires correspondants pour supprimer manuellement les SimulatorSDK indésirables

Raymond
la source
4

Dans XCode, ouvrez Window - Devices, puis sélectionnez et supprimez les simulateurs obsolètes.

catanore
la source
3

Une autre chose que vous pouvez faire est de modifier la cible de déploiement à la valeur la plus élevée. Cela empêchera le menu Scheme d'afficher les anciennes versions.

Pour ce faire, accédez à: Cible-> Résumé, puis modifiez la cible de déploiement.

werdsackjon
la source
Peut-être que les choses ont changé depuis que j'ai posté la question, mais quand je l'ai fait, vous verriez les différents simulateurs dans le menu Scheme, et cela compliquait simplement de choisir le bon.
David H
3

J'ai essayé toutes les réponses. Aucun d'eux ne travaillait pour moi.

Ce qui a fonctionné pour moi sur Sierra + Xcode 8.2 allait:

/Library/Developer/CoreSimulator/Devices et supprimer tous les appareils.

(Peut-être que cela ne fonctionnera pas pour vous, peut-être que c'est une solution en tant que solution autonome, ou peut-être que vous devez le faire en plus d'autres réponses, mais j'ai fait toutes les solutions ici et donc je ne sais pas quoi a fait l'acte). Sachez simplement que certaines des réponses ici sont anciennes et que l'emplacement du simulateur a changé. La réponse de Snowcrash semble être la plus récente.

Mon chéri
la source
Puis-je supposer que vous avez d'abord fermé Xcode, avez fait cela, puis redémarré Xcode?
David H
@DavidH désolé, je ne me souviens pas de ce que j'ai fait. J'ai eu le problème pendant 3-4 semaines. Chaque fois que cela se produisait lorsque je basculais entre des projets / appareils sim ... J'ai tout essayé et cela semblait le faire pour moi ... encore une fois, cela pourrait être quelque chose d'autre pour vous
Honey
@DavidH avez-vous également essayé cette réponse
Honey
Pour Xcode 10 et le dossier est plus récent: ~/Library/Developer/CoreSimulator/Devices.
blackjacx
3

J'ai écrit un script bash d'une ligne qui supprimerait TOUS vos simulateurs:

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
  • xcrun simctl list devices listera tous les simulateurs installés sur votre machine
  • grep -E -o -i "([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})" saisira l'UUID de l'appareil
  • xargs -L1 xcrun simctl delete tentera de supprimer le périphérique pour chaque UUID trouvé

Si vous voulez voir tout ce qu'il va exécuter, vous pouvez ajouter echoavant xcrun, c'est-à-dire

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
Toland Hon
la source
2

Le problème avec ces réponses est qu'à chaque mise à jour de Xcode, les menus et les emplacements changeront.

Allez /Applications/Xcode.app/Contents/Developer/Platformset supprimez ce dont vous n'avez pas besoin. Xcode démarrera bien. Si vous êtes inquiet, vous pouvez simplement restaurer à partir de la corbeille.

Snowcrash
la source
2
Je doute sérieusement que Xcode télécharge des simulateurs que vous lui demandez son pack. Ils vont sûrement dans la bibliothèque des utilisateurs, non? Cela dit, je n'ai jamais téléchargé un ancien depuis que j'ai eu mon problème avec Xcode 4.
David H
Pour chaque plate-forme (iOS, watchOS, AppleTVOS, MacOS), j'ai 2 dossiers: j'ai "iPhoneOS.platform" & "iPhoneSimulator.platform" Lequel suis-je supposé supprimer? J'ai vérifié avec un collègue, il avait exactement les deux, mais aucun problème.La raison pour laquelle je suis ici est à cause de ce problème et quelqu'un m'a dit que c'est parce que j'ai 2 simulateurs / Xcodes, mais si je ne l'ai pas corrigé, je '' ai supprimé mon autre version de Xcode et j'ai également supprimé le runtime 9.3 ...
Honey
1
S'il vous plaît, s'il vous plaît, ne faites pas cela. Personne ne devrait jouer avec le contenu du bundle Xcode.
russbishop
2

Certaines personnes essaient de le réparer d'une manière, d'autres de la seconde. Fondamentalement, il y a 2 problèmes, qui si vous les vérifiez et résolvez les deux - dans 99% des cas, cela devrait résoudre ce problème:

  1. Anciens simulateurs d'appareils situés YOUR_MAC_NAME(par exemple Macintosh) -> Users-> YOUR_USERNAME( daniel) -> Library-> Developer-> Xcode-> iOS Device Support. Laissez-le, le plus récent, à partir d'aujourd'hui 13.2.3 (17B111), mais à l'avenir, cela changera. Le nombre le plus élevé (ici 13.2.3) de la version iOS indique qu'il est plus récent.

  2. Après cela, répertoriez vos appareils en Terminalexécutant xcrun simctl list devices. Beaucoup d'entre eux peuvent l'être unavailable, donc supprimez-les en exécutant xcrun simctl delete unavailable. Cela libérera également de l'espace. Pour être sûr que tout va bien, vérifiez-le à nouveau en exécutant xcrun simctl list devices. Vous ne devriez voir les appareils que de la dernière version (ici 13.2.3) comme le montre la capture d'écran ci-dessous.

entrez la description de l'image ici

En bonus, qui est un peu moins pertinent pour cette question, mais il reste de l'espace libre. Allez dans YOUR_MAC_NAME(ex. Macintosh) -> Users-> YOUR_USERNAME(ex. daniel) -> Library-> Developer-> Xcode-> Archives. Vous verrez de nombreuses applications déployées archivées, vous n'avez probablement pas besoin de toutes. Essayez de supprimer ceux-ci, qui ne sont plus utilisés.

En utilisant ces 2 méthodes et la méthode bonus, j'ai pu obtenir 15 Go d'espace supplémentaire sur mon Mac.

PS. Supprimer simplement les simulateurs de Xcode en allant dans Xcode-> Window-> Devices and Simulators-> Simulators(ou simplement CMD+ SHIFT+ 2lorsque vous utilisez un raccourci clavier) et le supprimer ne vous aidera pas. Vous devez vraiment suivre les étapes décrites.

Daniel Danielecki
la source
-2

Commande + Espace

Tapez «simulateur»

ouvrez l'ancien simulateur bêta dont vous n'avez plus besoin.

faites un clic droit dessus dans le dock, puis choisissez Options> 'Afficher dans le Finder'

Fermez l'application, puis supprimez-la du dossier.

:)

Samer
la source