Existe-t-il un moyen simple de nettoyer le répertoire dans lequel xcode déploie une application lors de la création du simulateur iPhone? J'ai une base de données sqlite qui est copiée dans le dossier Documents au démarrage si nécessaire. Le problème est que je peux changer de schéma, mais la nouvelle base de données ne sera pas copiée, car il en existe déjà une.
Idéalement, chaque fois que je construirais, cela nuancerait le contenu précédent. Est-ce possible ou dois-je le faire manuellement?
Le simulateur installe les applications dans:
"$HOME/Library/Application Support/iPhone Simulator/User/Applications"
Vérifiez également:
"$HOME/Library/Developer/CoreSimulator/Devices"
Les fichiers et les répertoires GUID correspondent aux applications installées du simulateur.
Supprimez manuellement tous ces fichiers/répertoires pour supprimer toutes les applications du simulateur.
Je sais qu'il existe un moyen d'ajouter des scripts au processus de génération dans XCode.
En outre, il semble que XCode modifie le GUID utilise chaque construction (le répertoire dans lequel mon application est modifiée) entre les constructions dans XCode), donc essayer de supprimer le même répertoire tout le temps ne fonctionnera pas Si vous ne travaillez que sur une application à la fois, effacer tout le répertoire sera une option.
Pour ce faire, cliquez simplement sur l'icône de mon application dans le simulateur et maintenez-la enfoncée; ensuite, lorsqu'elle commence à bouger, cliquez sur le noir et blanc (x). Un message apparaîtra vous demandant si vous voulez vraiment supprimer et vous cliquez simplement sur oui. La prochaine fois que vous construirez et déployerez votre application, elle utilisera la nouvelle base de données sqlite sans accroc et vous n’aurez pas à vous perdre dans le système de fichiers.
Après iOS 5 sur Mac OS X Lion, vous pouvez essayer:
RemoveSimulatorApps.command
cela contient:rm -rf "$ HOME/Bibliothèque/Application Support/iPhone Simulator/5.0/Applications /*"
PATH
.chmod + x RemoveSimulatorApps.command
c'est peut-être exagéré mais ..
vous pouvez également utiliser le menu et l'option 'Réinitialiser le contenu et les paramètres ...'
Ce que vous essayez réellement de faire est d'effacer votre base de données, si vous avez modifié le schéma. Une façon de le faire, et cela vous rendrait plus heureux à long terme lorsque vous commencez à envoyer les versions 2.0, 3.0, etc. de votre application, consiste à vérifier la version de votre table sqlite. Si elle a changé, supprimez la ancien fichier et utilisez celui de votre lot.
Trouver un moyen de nettoyer le simulateur n'aidera pas le problème concret du nettoyage de l'iPhone d'un client lorsque vous expédiez une nouvelle version avec un nouveau schéma.
Pour des points supplémentaires, après avoir déterminé que vous avez rencontré un ancien schéma, vous pouvez copier la nouvelle base de données sans détruire l’ancien, et charger toutes les données intéressantes hors de l’ancienne base de données dans le nouveau. Ensuite, supprimez l'ancienne base de données. De cette façon, vous pouvez conserver les ajouts de votre utilisateur à la base de données.
pour Xcode> = 6
xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -n1 xcrun simctl erase
A partir de Xcode 6, vous pouvez le faire depuis la ligne de commande avec: xcrun simctl erase
En outre, l'application iOS Simulator (version Xcode 6 et versions antérieures) comporte un élément de menu appelé "Réinitialiser le contenu et les paramètres" qui peut être utilisé pour effacer le périphérique actuellement démarré.
Cela fonctionne avec Xcode 6:
xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}
Pour .bash_profile
alias cleansim="xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}"
À partir de Xcode 6:
xcrun simctl erase <sim udid>
<- réinitialise le simulateur.
Dans XCode, allez à l’option de menu Fenêtre, sélectionnez Périphériques, puis supprimez ceux dont vous n’avez plus besoin.
Clear Xcode Cache;
Commande + Option + Maj + K
Commande + Maj + K
(Utilisez les deux car ils ont des fonctionnalités différentes)
Effacer le contenu des données dérivées;
Barre de menus -> Fenêtre -> Organiseur -> Projets -> Sélectionnez votre projet
Le volet de droite affiche le nom du dossier et le bouton de suppression situé à droite vous permet de supprimer tout le contenu des données dérivées.
Effacer le cache du simulateur;
Barre de menus -> Simulateur iOS -> Réinitialiser le contenu et les paramètres
Comme je l'expliquais dans un commentaire sous le réponse validée :
Je testais l'ajout et la suppression des abonnements au calendrier. Sur un appareil réel, vous pouvez supprimer un abonnement au calendrier dans Paramètres, Comptes mais ce menu n'existe pas dans iOS Simulator et je ne voulais pas réinitialiser le simulateur entier.
Je me suis donc retrouvé localement versionnant mon dossier Device avec git et exécutez les commandes suivantes pour supprimer un abonnement au calendrier après avoir terminé. l'a ajouté:
$ git reset HEAD --hard
$ git clean -f
Les étapes sont donc les suivantes:
~/Library/Developer/CoreSimulator/Devices/
et faites un cd
, puis git init
pour créer un dépôt gitgit commit -a "Message"
git reset --hard HEAD
git commit
sont partis.Pour Xcode <= 5
J'ai ajouté ce qui suit à mon ~/.bash_profile
alias cleansim='rm -r ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/*'
Il ne fait que supprimer toutes les applications de la sim.