Fixing file 'project.pch' has been modified since the precompiled header was built error in Xcode
Asked Answered
C

21

54

I was recently working on my application messing around in the info.plist section, and since that my application will not run on my test device:

file 'project.pch' has been modified since the precompiled header was built

Something to note is that the app runs fine in the simulator.


Edit: Now I am getting this error instead of the other one:

No such file or directory (/Users/Me/Library/Developer/Xcode/DerivedData/MyProject-abcdefghijklmnopqrstuvwxyz/Build/Products/Debug-iphoneos/MyApp./MyApp)

No such file or directory error

How to regenerate the info.plist file?

Crocoite answered 10/2, 2013 at 0:38 Comment(1)
Similar answer on here that solved it for me (and actually explained where the PCM files are)... https://mcmap.net/q/276633/-file-has-been-modified-since-the-precompiled-header-was-builtObtrude
C
104

You could try a deep clean (not the same as Product > Clean) - Option+Command+Shift+K

Note: this means the clean the build folder (by pressing Option + Product -> clean folder)

Crispen answered 11/2, 2013 at 15:25 Comment(1)
I had this happen to me, building my Mac OS X app: '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h' has been modified since the precompiled header was built 1 error generated. Wow! Indeed, all of the files in have a mod date of 2 days ago. Huh? I had updated to an Apple developer seed of Mac OS X, but that was about 3 hours before 10:15. flightplanner's deep clean fixed the error. Mysterious!Missive
A
75
  1. Close your project or workspace.
  2. In Finder: ⇧shift+⌘cmd+G
  3. Paste: ~/Library/Developer/Xcode/DerivedData/
  4. Delete the ModuleCache folder and empty trash.
  5. Open up your project.
  6. Clean: ⇧shift+⌘cmd+K
  7. Build: ⌘cmd+B
Abbeyabbi answered 31/7, 2014 at 2:56 Comment(8)
I deleted the ModuleCache folder and it seems to work.Annadiana
Deleting all the contents inside ModuleCache worked for me too.Unskilled
I was having a similar problem with an sdk 10.10 file supposedly being modified. Wiping out all the files in the cache fixed the problemThrave
When searching, change the selected button from This Mac to "ModuleCache" and things will be much faster.Gynoecium
Thanks alot. It did work. Small add on we need to close all xcode projects before deleting module cache. Otherwise that folder will reappear then and there.Benn
Thats what needs to happen. Xcode generates new necessary files and folders that works perfectly with the new version.Abbeyabbi
Worked for me too, tho DerivedData was located in my project directory. I'm using Xcode 6.3. My problem was caused by changing the name of my directory where my project was located.Scream
Go to Xcode->Preferences -> Locations -> Click arrow in front of DerivedData, delete every thing.Gastrovascular
S
60

In my case the error message had a small hint:

note: after modifying system headers, please delete the module cache at '~/Library/Developer/Xcode/DerivedData/ModuleCache/5CYAJ91AZCB7'

I tried and it worked.

Siskind answered 12/4, 2014 at 13:50 Comment(6)
Thanks for this answer Cedric. ONLY this solution worked for me in Xcode 5.1/iOS 7.1!Encratia
This was the only answer that worked for me with the Xcode6-Beta! Thanks!Distress
If you accidentally modify a system header this is the only way to get your project to build again. The fact that you can command click any system element and then modify it is quite a ridiculous "feature" Xcode has. There should at least be some kind of warning or something before it lets you edit them. :/Kier
The same issue with XCode6 was fixed with this answer. Thanks man!Rachitis
This solved my problem, but I noticed that the directory for the module cache was inside my project directory (in the build directory) as opposed to in the ~/Library directory. If anyone keeps having that issue, check to see in the error output where that directory is for your project...Hatteras
xcode 6.0 (6A313) asked me to rebuild the derived data, however deleting it and cleaning the project didn't help - I had to do it manually, and then it worked.Unrivalled
U
43

Simply touching the project's pch file solved this issue it for me :

touch Test.pch
Underexposure answered 15/7, 2013 at 12:58 Comment(3)
@kenji thanks! We have a huge project which started failing on Jenkins because of this. Made a script to fix it, you can put this in your build phase or whatnot.Priming
It's odd that this worked for you guys. Touching the .pch should change the timestamp, which is precisely what the xcodebuild error is complaining about!Lebron
After wasting one and half day finally your solution worked for me. Damn man, you are the saviour. ThanksRattish
H
19
  • Product -> Clean
  • Product + Option -> Clean Build Folder
  • Close Project or Workspace
  • Clean 'ModuleCache' path in Finder.

Worked for me in Xcode6 GM and iOS 8.0.

Hoehne answered 15/9, 2014 at 7:57 Comment(2)
It works for me, since i replace the Xcode 6 with Xcode 6.0.1Stamps
Yes, Xcode 6.0.1 broke my build scripts. I wonder if in previous Xcode installations they automatically removed the ModuleCache folder? I had to manually remove it from the location mentioned in my failed build.log. For me this was at: /var/folders/b1/s0pj4gvn3cq589pjwdkcx_b80000gn/C/org.llvm.clangNevsa
P
11

When the .h file of a Library Provided with Xcode is changed (even a space), this error could occur.

The following maybe tried in order to fix this issue

  • In, Project -> Build Settings, change Precompile Prefix Header to NO

    OR

  • Run rm -rf ~/Library/Developer/Xcode/DerivedData and Clean Build

Prophesy answered 12/6, 2014 at 11:9 Comment(1)
The "Precompile Prefix Header" setting fixed our issue building in TeamCityLebron
B
7

I constantly had this since upgrading from Xcode 4.6 to Xcode 5 with iOS projects when using command line build (xcodebuild).

What worked for me is to use this as command line build command:

xcodebuild -project path/to/my.xcodeproj -configuration Debug clean build

Before this, I've tried:

  • Clean the project in Xcode GUI.
  • Delete the offending pch file.
  • Delete the offending pch file's parent folder.
  • Delete the DerivedData project folder.

None of the above worked for me under Xcode 5.0.2, Mavericks, iOS7.

Note that the problem didn't happen to me when using Xcode GUI.

Boiling answered 10/2, 2014 at 16:28 Comment(0)
G
5

I just go to directory "/$HOME/Library/Developer/Xcode/DerivedData/", delete everything there

Gorga answered 22/9, 2014 at 3:5 Comment(0)
D
3

Just Click Product from the menu and select Clean

Product>Clean

Worked fine for me.

Danille answered 27/3, 2014 at 5:8 Comment(0)
S
2

I got the same problem. My error said like I need to delete the cache in the below locaition,

Users/myusername/Library/Developer/Xcode/DerivedData/ModuleCache/3FGETKFCU0N0W

3FGETKFCU0N0W was a folder, when I deleted it and then clean build the project. Then the error disappears.

Sparker answered 2/9, 2014 at 11:10 Comment(0)
A
2
rm -rf ~/Library/Developer/Xcode/DerivedData/
Academe answered 3/10, 2014 at 9:11 Comment(0)
S
2

If you use AppCode you can try remove content form: /Users/[Username]/Library/Caches/appCode30/DerivedData/

Worked for me :)

Shun answered 7/10, 2014 at 14:45 Comment(0)
C
1

For me, this problem is only occurring in Xcode 6 beta version, So I switch back to Xcode 5, and now problem is solved.

I tried all the steps suggested by all users here, but no one worked for me.

So, if you have both versions of Xcode and have issue only in Xcode 6 beta, then switch to Xcode 5 and clean the project, problem will be solved.

Crystallization answered 10/7, 2014 at 13:50 Comment(0)
P
1

Also, just open terminal, and delete the .pcm file that has been generated (Xcode 6 onwards)

rm <path-to-pcm-file>
Prophesy answered 16/7, 2014 at 17:13 Comment(1)
https://mcmap.net/q/276633/-file-has-been-modified-since-the-precompiled-header-was-built went that extra couple of sentences...Obtrude
I
1

If you get this when switching between git branches, try adding this post-checkout hook which will clean your project every time you change branch.

!/bin/sh
xcodebuild clean -configuration Debug

Save as .git/hooks/post-checkout relative to your project root and don't forget chmod +x .git/hooks/post-checkout

Isomorph answered 1/12, 2014 at 12:17 Comment(0)
G
0

I tried these one by one but failed to build and run my project. So I changed Precompile Prefix Header to NO as mentioned by @Abhilash Gopal, then I reset the simulator,deleted the derived data, removed the corresponding .pcm file(In my case it was the UIImage.h from UIKit framework, so removed the UIKit.pcm).Then I cleaned the project and only then I was able to build it successfully. In earlier versions of Xcode these files were locked basically and were not allowed to edit. But its not the case now. Hope this helps someone who face the same situation.

Geopolitics answered 9/7, 2014 at 9:18 Comment(0)
M
0

The only solution there worked for me was running the following command:

sudo rm -R /var/folders/

But that gave me a lot of troubles in OS X.

I thought because /var/folders/ is for temporary files it should be okay to just empty anything in it. But I was wrong see the following post: link

And the problem you described occurred every-time I tried to build my Xcode project - I'm building it from the CLI though Jenkins.

Which means I couldn't run the rm command every-time. So I found some inspirations and wrote the following ruby script which solved my problem:

#!/usr/bin/env ruby

require 'fileutils'

cache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf(cache)

I hope it would be helpful to someone.

Macmahon answered 24/9, 2014 at 16:20 Comment(0)
M
0

Deleting project.xcworkspace did a trick for me.

project.xcworkspace is a directory which describes schema of current Xcode workspace state. Each time Xcode is launched it will regenerate project.xcworkspace if not exist already.

In order to delete project.xcworkspace:

  • Right click on your project file yourProject.xcodeproj
  • From drop-down menu choose Show Package Content
  • Purge xcworkspace file
Meiosis answered 28/10, 2014 at 11:5 Comment(0)
S
0

If you are building on command line using xcodebuild remove '-parallelizeTargets' option passed to the command. That fixed the issue for me

Soul answered 19/2, 2015 at 16:7 Comment(0)
B
-1

After going through a lot of answers and helpful suggestions, I found out the solution to be: Uninstall Xcode 6 and reinstall it through the available dmg file and then install all the components for Xcode.

Product + Option -> Clean Build Folder, Clean Build Project, Deleting Module Cache files and Derived data files, using touch .pch, deleting pcm file, using command line to remove var/folders (Surprisingly, all of this did not help in my case)

Was stuck at it for more than 3 hours before finding the solution. Hope this helps someone.

Thanks.

Blotter answered 4/11, 2014 at 10:10 Comment(0)
S
-1

Just open terminal and fire below command:

rm /Users/pratik/Library/Developer/Xcode/DerivedData/ModuleCache/LKL48GNAN6S7/UIKit-2X95M2Q1NPNPL.pcm

give your file path which return .pcm error. and then Clean Project and Run...Enjoy!!!

Schoolhouse answered 22/5, 2015 at 9:36 Comment(2)
Please explain: What does this command do and why does this solve OP's problem?Kellerman
sure, basically this command will remove tmp file that was created ModuleCache. When you save any UIKit or any default framework file then it creates a tmp file that don't allow to build your project. Need to remove that tmp (.pcm) file and then clean your project and build.Schoolhouse

© 2022 - 2024 — McMap. All rights reserved.