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

36,013

Solution 1

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

Solution 2

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 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".

Solution 4

If you select "Clean", Xcode will delete files inside every folder(e.g., Products, Intermediates) in the Build folder, for the current target. Files for other targets remain.

If you select "Clean Build Folder", Xcode will delete the entire Build Folder, so nothing left.

In most cases "Clean" will work for "unknown" reasons, but you still have to "Clean the Build Folder" because Xcode won't delete files in the include folder inside Products folder.

Share:
36,013
epologee
Author by

epologee

Independent software engineer, clean coder, spare-time inventor, teacher, math tutor, snow boarder and IKO certified kite surf instructor. @epologee

Updated on June 08, 2020

Comments

  • epologee
    epologee almost 4 years

    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?

  • Michael Forrest
    Michael Forrest about 11 years
    This is ambiguous with that apostrophe in "all the target's folders". Do you mean "the folders for all targets or are there some other folders associated with the selected target?
  • jowie
    jowie over 10 years
    Sorry to be skeptical, but this seems odd. Are you saying the only difference between the two is that one deletes the folders and the other keeps the folders but deletes all the contents? What would be the difference in having four empty folders? Yet there is a noticeable difference between cleaning and sometimes having to clean build folders...
  • Aluminum
    Aluminum over 10 years
    Yes, that's the only difference. Personally I use "Clean" before building an app for the iOS Simulator or when I have strange problems with code and/or XCode and "Clean Build Folder" when I want to publish an app to the App Store or when I want to be sure that my app is build from the ground up with no caches.
  • Nicolas Miari
    Nicolas Miari over 10 years
    Is it just me, or 'Clean Build Folder' is faster than 'Clean'?
  • Basil Bourque
    Basil Bourque over 9 years
    This answer is not complete. Clean Build Folder solves problems in projects with only a single target.
  • DawnSong
    DawnSong over 6 years
    Something has changed for Xcode 8, Build folder is kept after Clean Build Folder.... Obviously, Clean Build Folder... is more complete than Clean. However, I think deletion of ~/Library/Developer/Xcode/DerivedData/xxx-ABCD folder is needed in some case such as your Xcode cannot work properly, where xxx is the name of your project or workspace.
  • Cacoon
    Cacoon almost 6 years
    Always love when people come back to an old question and answer thats popular and make a very clear example and explanation