261

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?

Cœur
  • 37,241
  • 25
  • 195
  • 267
Tieme
  • 62,602
  • 20
  • 102
  • 156
  • 1
    Here's my [shell script solution][1], which deletes derived data, for both xCode 5 and 6. [1]: http://stackoverflow.com/a/27977848/1231948 – Sheamus Jan 16 '15 at 06:47

15 Answers15

549

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.

Chris Nolet
  • 8,714
  • 7
  • 67
  • 92
matt
  • 515,959
  • 87
  • 875
  • 1,141
  • 6
    Nice, cleaning the path: Library/Developer/Xcode/DerivedData + resetting the content and setting of the simulator works! – Tieme Jun 06 '11 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... – Victor Van Hee Sep 16 '11 at 10:32
  • 42
    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! :-) – Jonas Byström Nov 23 '11 at 19:55
  • 1
    @Jonas haha... that's kinda funny.. unless you lost serious money from it – Henley Jan 21 '12 at 15:28
  • I have the same problem out of the blue. Have never had this issue before. I have done all of these suggestions to no avail. Delete app from device is the only solution for me. I do not want to delete the app every time I change a nib file. Has anybody found anything more conclusive for a fix? What is the /var/folders? I don't find it on my system. – Dean Davids Mar 16 '12 at 02:34
  • 1
    @matt: What type of data is stored in `/var/folders`. I would like to clean my stuff but deleting something in `/var/` feels a bit risky to me. – Besi Jul 13 '12 at 09:25
  • @Besi - Look and see. You'll find a lot of old .pch files cached there, for example. If you don't want to delete them, don't; I don't think it affects most people aside from taking up unnecessary disk space. – matt Jul 14 '12 at 03:32
  • I had to close my current project first before I delete the files in DerivedData and /var/folders before it worked! Also don't forget to reset the simulator before running the app again. :) – TheNitram Mar 07 '13 at 06:41
  • 4
    @Jonas I felt compelled to add a warning to the "delete /var/folders" advice. It's not for the uninitiated! – CodeSmile Aug 23 '13 at 17:54
  • Agreed but then that would be a comment, surely - not a revision to the answer. – matt Sep 01 '13 at 01:03
  • I tried this in Xcode5 but it didn't work for me. I ended up reverting my whole changelist (using GitHUB) and that worked for me. – Michael Osofsky May 11 '14 at 03:39
  • 2
    For me, it was none of the other "XCode" caches, everything remained borken until I emptied `/var/folders/` -- hooray for that one! – Olie Sep 03 '14 at 22:13
  • 1
    Worth noting that 2014 in XCode 6 this is the(!) Solution if the debugger shows wrong lines or no data of members. – Martin Schlott Sep 29 '14 at 17:22
  • 1
    I ran into a situation where Xcode would not compile my project **or backups of it** because I had a Frameworks path in FRAMEWORK_SEARCH_PATHS. If you are hesitant to remove the contents of /var/folders, see my answer at http://stackoverflow.com/a/26682008/539149 for a full explanation of how working project settings can suddenly fail if they affect shared PCH. My best guess is that sometimes Xcode's caches don't rebuild the same way they (luckily) did before, so longstanding misconfigurations can be masked but eventually reveal themselves. – Zack Morris Oct 31 '14 at 19:43
  • 8
    Do not run rm -rf /var/folders with sudo or you will end up repairing as myself :) – Josip B. Jul 27 '15 at 09:06
  • Works with Xcode 7.0! I lost almost 2 days trying to delete and all version of a module. I executed all the commands in the answer and it is gone at last! Thank you! – pabloa98 Oct 19 '15 at 05:28
  • I had accidentally removed /var/folders before reading all the warnings. my macbook hangs forever after the reboot. I have to boot up in single user mode, remount the whole directory before remove and recreate the directory folders/zz in /var. https://osxbytes.wordpress.com/2015/03/19/boot-hang-after-deleting-var-folders/ – zynick May 06 '16 at 05:58
  • 1
    @matt, I think you need to add a warning about `/var/folders` here. Great answer, but mandating that the warning 'would be a comment, not a revision to the answer' is causing harm. – Chris Nolet Jun 01 '16 at 06:22
75

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.

sram
  • 965
  • 5
  • 6
  • 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 04 '11 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 01 '13 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 '21 at 06:20
25

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

Sam Spencer
  • 8,492
  • 12
  • 76
  • 133
  • 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 '14 at 18:04
  • +1 on the /var/folders instruction... cleaning and deleting DerivedData worked partially but that one did the trick – EeKay Oct 21 '14 at 09:46
  • 1
    1. Clean Build 2. Reset Simulator 3. Restart Xcode That solved my issue. – Alan Dong Jan 08 '15 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 '19 at 09: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).

mert
  • 1,942
  • 2
  • 23
  • 43
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! :)

thehatisonfire
  • 101
  • 1
  • 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 '12 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 '13 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.

orkoden
  • 18,946
  • 4
  • 59
  • 50
  • 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. – Jerry Krinock Dec 29 '14 at 03: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.

McUsr
  • 1,400
  • 13
  • 10
4

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

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

Mahdi Moqadasi
  • 2,029
  • 4
  • 26
  • 52
2

Simply delete Derived Data from Terminal,

   rm -rf ~/Library/Developer/Xcode/DerivedData/*
Mani
  • 3,394
  • 3
  • 30
  • 36
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

Wayne
  • 3,359
  • 3
  • 30
  • 50
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.

Alyoshak
  • 2,696
  • 10
  • 43
  • 70
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.

Community
  • 1
  • 1
Sheamus
  • 6,506
  • 3
  • 35
  • 61
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.

  • 1
    Sounds risky indeed. What does SIP do? – Tieme Oct 19 '16 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 – Castro Zwelithini Oct 19 '16 at 15:04
0

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

Oleksandr Yefymov
  • 6,081
  • 2
  • 22
  • 32
-1

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

Steps:

Andy Ai
  • 99
  • 1
  • 2
  • 8