Xcode 4 "Clean" vs. "Clean Build Folder"

You come at a certain point in the development of every app that what you see in the simulator does not match what you think should happen. Mostly these are human errors -- or at least they are in most of my cases ;-) -- but sometimes Xcode has just 'lost track', or so it seems. I've learnt that the Clean (Shift+Cmd+K) and Clean Build Folder… (Option+Shift+Command+K) menu options can show the difference between your error or Xcode's.

My question though is:

What does the Clean command do or not do, which leaves a reason for Clean Build Folder… to exist? When should I pick one over the other, why not just always clean the whole folder?


Solution 1:

If you select Clean from the Product menu, XCode will delete the files inside every folder in the Build folder, if you select Clean Build Folder it will delete the entire Build folder.

After Clean command:

enter image description here After Clean Build Folder command:

enter image description here

I think you should select Clean Build Folder when you want to build a binary that you want to release to the AppStore, when you messed up with your project or when your app doesn't work for an "unknown" reason, otherwise use Clean.

I hope I've answered your question :D

Solution 2:

Clean… cleans the folders for the current selected target.
Clean Build Folder… cleans the folders for all the targets.

Solution 3:

As of Xcode 10, 'Clean' has effectively disappeared. Apple says here:

"The new build system uses the "clean build folder" behavior. The legacy "clean" behavior is not supported".