266

Jonathan suggest here: Xcode Includes .xib files that have been deleted! that cleaning all targets and empty the caches will fix the problem with Xcode including deleted .xib files but I cannot find a way to empty the cache in Xcode 4.

How to do that in Xcode 4?

1

16 Answers 16

553

Command-Option-Shift-K to clean out the build folder. Even better, quit Xcode and clean out ~/Library/Developer/Xcode/DerivedData manually. Remove all its contents because there's a bug where Xcode will run an old version of your project that's in there somewhere. (Xcode 4.2 will show you the Derived Data folder: choose Window > Organizer and switch to the Projects tab. Click the right-arrow to the right of the Derived Data folder name.)

In the simulator, choose iOS Simulator > Reset Content and Settings.

Finally, for completeness, you can delete the contents of /var/folders; some caching happens there too.

WARNING: Deleting /var/folders can cause issues, and you may need to repair or reinstall your operating system after doing so.

EDIT: I have just learned that if you are afraid to grapple with /var/folders/ you can use the following command in the Terminal to delete in a more targeted way:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

EDIT: For certain Swift-related problems I have found it useful to delete ~/Library/Caches/com.apple.dt.Xcode. You lose a lot when you do this, like your spare copies of the downloaded documentation doc sets, but it can be worth it.

18
  • 6
    Nice, cleaning the path: Library/Developer/Xcode/DerivedData + resetting the content and setting of the simulator works!
    – Tieme
    Jun 6, 2011 at 10:26
  • 10
    Path appears to be in my home directory (note tilde): ~/Library/Developer/Xcode/DerivedData Maybe this was obvious to others, but in case someone else has the issue... Sep 16, 2011 at 10:32
  • 44
    Hehe, being an übern00b I deleted /var/db where I found something that came from Xcode/my project. That cost me five hours of trashed journalling in the file system, repair and reinstall of Lion, etc. Be warned! :-) Nov 23, 2011 at 19:55
  • 5
    @Jonas I felt compelled to add a warning to the "delete /var/folders" advice. It's not for the uninitiated!
    – CodeSmile
    Aug 23, 2013 at 17:54
  • 8
    Do not run rm -rf /var/folders with sudo or you will end up repairing as myself :)
    – Josip B.
    Jul 27, 2015 at 9:06
77

Command-Option-Shift-K should do it. Alternatively, go to product menu, press the option key, now the option "Clean" will change to "Clean Build Folder ..." select that option.

3
  • Nope, too bad.. i just changed and renamed an xib file and cleaned the app as you said but it still loads fine without errors.
    – Tieme
    May 4, 2011 at 15:50
  • 2
    Wow, never new about that alt key trick for Mac OS X menus!!! That really defines the meaning of "Alt"ernate.
    – trusktr
    Aug 1, 2013 at 19:09
  • Hello @sram, the Command-Option-Shift-K not working on the new xCode (12.5) You have something else ?
    – benhi
    May 12, 2021 at 6:20
26

In addition to doing the following, you may experience this issue if your app's Storyboard's files are localized. First, do each of these:

  • Clean Build
  • Reset Simulator
  • Restart Xcode
  • Delete your DerivedData folder in ~/Library/Developer/Xcode/DerivedData
  • Restart Computer

What finally worked for me was re-generating the storyboard localization files and deleting the English localization (which was unneeded because the Base Locale is English). To reload your Storyboard strings, see this answer on StackOverflow.

I had noticed that the non-text parts of my Storyboard were being updated, but not the localized text. If you have a localization in your app, I would recommend checking to make sure your localizations are updated (even if they're .strings files).

4
  • 2
    Deleting the contents (not the whole folder) of /var/folders did it for me! If you're looking for the /var/folders...Choose Go to Folder from the Finder's Go menu, and enter /var/ as the folder's location.
    – Patricia
    Jun 19, 2014 at 18:04
  • +1 on the /var/folders instruction... cleaning and deleting DerivedData worked partially but that one did the trick
    – EeKay
    Oct 21, 2014 at 9:46
  • 1
    1. Clean Build 2. Reset Simulator 3. Restart Xcode That solved my issue.
    – Alan Dong
    Jan 8, 2015 at 19:12
  • 1
    WARNING! Beware that deleting contents from /var/folders/ can cause serious issues and might result in having to completely reinstall OSx from the recovery console!
    – Magnus
    Mar 13, 2019 at 9:27
18

I found another way in addition to command+option+shift+K. In XCode 4.2 there is an organizer that can be opened from top-right icon. You can clean all archives and saved project options from there. This helped my situation (I was seeing old removed files in the mainBundle).

2
  • 4
    Yeah that's indead an easier way than cleaning ~/Library/Developer/Xcode/DerivedData manually
    – Tieme
    Apr 23, 2012 at 15:42
  • It's cmd+opt+shift+O now Mar 6, 2023 at 3:18
10

I have been pulling out hair from my head because I thought that I had the same problem. When building the app I didn't get the same result on my iPhone as on the simulator.

The problem was that I had somehow made a localized version of the MainStoryboard.storyboard file. So when I ran the app on my phone it showed the danish version... and the simulator showed the english version.

Yeah I'm new! :)

2
  • 2
    I had similar problems. Did command-option-shift-K to no avail. Removed ...DerivedData, no solution. Turned out changing the top level XIB only changes the English version, and I was testing with Dutch version of the XIB. Sigh...
    – fishinear
    Feb 23, 2012 at 18:34
  • 1
    Also, be aware that there are ways to localize your app where separate text files are created for each language. In such cases, changing the .xib doesn't do a thing.
    – dandan78
    Aug 12, 2013 at 15:18
7

To delete all derived data and the module cache in /var/folders use this little ruby script.

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

This just solved a fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/ error for me.

1
  • 1
    The apparent bug causing "fatal error: malformed or corrupted AST file: 'Unable to load module", and the failure of the gentle solution suggested by Xcode, is still occurring in Xcode 6.1. And the solution to quit Xcode and manually clean out ~/Library/Developer/Xcode/DerivedData manually still works. I didn't need to clean everything in there; just two subfolders: ModuleCache, and the subfolder whose name is relevant to the problem project. Dec 29, 2014 at 3:49
6

I had some problems with Xcode 5.1 crashing on me, when I opened the doc window.

I am not sure of the cause of it, because I was also updating docsets, while I opened the window.

Well, in Xcode 5 the modules directory now resides within the derived data folder, which I for obvious reasons didn't delete. I deleted the contents of ~/Library/Developer/Xcode/DerivedData/ModuleCache and the ~/Library/Preferences/com.apple.Xcode.plist and everything then seems to work, after I restarted Xcode.

4

My "DerivedData" with Xcode 10.2 and Mojave was here:

MacHD/Users/[MyUser]/Library/Developer/Xcode

3

Simply delete Derived Data from Terminal,

   rm -rf ~/Library/Developer/Xcode/DerivedData/*
1

When using a "Data Model" , there are options in the inspector to generare classes, for me this was the case as there was already a class with the existing name.

Codegen: solved it for me.

enter image description here

0

You have to be careful about the xib file. I tried all the above and nothing worked for me. I was using custom UIButtons defined in the xib, and realized it might be related to the fact that I had assigned attributes there which were not changing programmatically. If you've defined images or text there, remove them. When I did, my programmatic changes began to take effect.

0

Here's my shell script solution, which deletes derived data and cleans a project's cached assets, for Xcode 4, 5 and 6.

Sometimes, simply calling rm -rf on the Derived Data directory leaves a lingering file or two, but my script loops until all files are deleted.

0

I tried almost everything but could not help,what helped me was disabling SIP(System Integration Protection) n it works,I do not know what happens when and how but system file get confused somewhere and causes this...though there might be risks to disabling this obviously

here is how

1.Power on your Mac and hold down the [command]+[R] keys to access the Recovery Partition.

2.From the Recovery Partition, click Utilities from the menu bar, and then select Terminal.

3.Enter the following command into Terminal and press Enter to execute it: csrutil disable

4.Once the command has executed, exit the Terminal and reboot the Mac. When you log back into OS X, SIP will be disabled.

2
  • 1
    Sounds risky indeed. What does SIP do?
    – Tieme
    Oct 19, 2016 at 13:20
  • System Integrity Protection protects system files and directories that are flagged for protection.basically adds more security to your system,limiting even the power of the sudo command Oct 19, 2016 at 15:04
0

For me with cached images helped: Xcode -> Product -> Clean Build Folder

0

For convenience reasons, I created an apple script for this routine

tell application "Xcode"
    activate
    
    set targetProject to active workspace document
    repeat 60 times
        if loaded of targetProject is true then
            exit repeat
        end if
        delay 0.5
    end repeat
    
    stop targetProject
    
    set action to clean targetProject
    repeat 60 times
        if completed of action is true then
            exit repeat
        end if
        delay 0.5
    end repeat
    
    quit
end tell

set cacheDir to do shell script "getconf DARWIN_USER_CACHE_DIR"
set whoAmI to do shell script "whoami"

tell application "Finder"
    try
        delete folder (cacheDir & "clang/ModuleCache")
    end try
    try
        delete folder (cacheDir & "clang." & whoAmI & "/ModuleCache")
    end try
    try
        delete every item of folder (cacheDir & "org.llvm.clang/ModuleCache")
    end try
    try
        delete every item of folder (cacheDir & "org.llvm.clang." & whoAmI & "/ModuleCache")
    end try
    try
        delete every item of folder ((path to home folder as text) & "Library:Developer:Xcode:DerivedData")
    end try
    try
        delete every item of folder ((path to home folder as text) & "Library:Caches:com.apple.dt.Xcode")
    end try
end tell

tell application "Xcode" to activate

Then I exported the script as an application

And now I can just press ⌘+Space and type "Xcode reset" in any case of unusual Xcode behaviour.

I also created a gist here

-3

You can use PrettyClean to clean the all of dev tools caches including Xcode.

Steps:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.