So I'm still reasonably new to iOS development and I'm finding myself quite regularly needing to delete either DerivedData, or the contents of the iPhone Simulator directory, to get things to actually execute from my code. Clean in Xcode doesn't do the same as emptying those directories, right? And if not, is there an easier way to do it than lugging Finder around to get to them, and clearing them?
66:99 and climbing:
Yes, there is a better way than going into every single simulator in town, and resetting contents and settings one at a time. Also much better than looking into your simulator's directory and yanking the cache from under its feet.
Quit iPhone Simulator, then run xcrun
in Terminal:
xcrun simctl erase all
Safe and effective.
See https://stackoverflow.com/a/26394597/218152 for single device
xcrun simctl erase [device ID]
In the iOS Simulator menu, there is an option called Reset Content and Settings...
This should do the trick.
EDIT:
To make this much quicker and easier, I added a shortcut key like this...
In System Preferences, choose Keyboard
https://i.stack.imgur.com/gOLW3.png
Then choose the Shortcuts tab. And click App Shortcuts
https://i.stack.imgur.com/SIjjh.png
https://i.stack.imgur.com/alivp.png
Click theChoose Simulator from the Application: drop-down. If it's not there, scroll to the bottom of the application list and choose "Other...". Then type "simulator" into the search and add the Simulator from there. Type Erase All Content and Settings... into the Menu Title: text-box. Type your preferred shortcut key into the Keyboard Shortcut:. (I use command-period) Click the Add button.
https://i.stack.imgur.com/vk5sa.png
Now, while in your iOS Simulator, you can simply use your new shortcut key to reset.
If the Simulator doesn't appear in the drop down list:
In a Finder window, go to your Applications folder. Right-click Xcode and choose "Show Package Contents". Navigate to Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/ You will see iPhone Simulator.app. Now, in the Settings app, instead of choosing iOS Simulator which is missing, you choose Other.... This will cause a window to appear that has a list of Applications. Now, drag iPhone Simulator.app from your Finder window to the window that appeared when you clicked Other....
Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
folder. You will see iPhone Simulator.app
. Now, in the Settings app, instead of choosing iOS Simulator
which is missing, you choose Other...
. This will cause a window to appear that has a list of Applications. Now, drag iPhone Simulator.app
from your Finder window to the window that appeared when you clicked Other...
.
Reset Content and Settings
will not clear client-side assets on a VPN. I was struggling this for a while wondering why my CSS animations worked everywhere except the simulator, only to find out that it was caching old files even when I had deleted content and settings. The only thing that ended up working for me was disconnecting from my VPN and restarting my VM then reconnecting (the framework I use versions all my assets for me) -- you can also version them manually if just testing stuff, but that's annoying. This is something Apple should fix; it only happens when testing for iOS for me.
Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/
as pointed out by @JeffWolski, You can search for it by the search term simulator.app
For web development and testing on the iOS Simulator (Safari):
With both iOS Simulator and Safari open, go to Safari > Develop > iOS Simulator and select your page which will give you access to the Web Inspector tools. Go to Safari > Develop > Empty Caches to clear the cache on iOS Safari.
Web inspector new has option to disable cache 2020 solution
https://i.stack.imgur.com/5jzFy.png
Success story sharing
xcrun simctl help
), erase: Erase a device's contents and settings., not to be confused with delete: Delete a device or all unavailable devices.clean build folder
approach. And props to you for keeping this question active.