ios4 - Missing file warnings showing up after upgrade to Xcode 4


Keywords:xcode 


Question: 

I recently upgraded to Xcode 4 (which is a great upgrade) but now I'm getting some warnings that I did not get before. I have looked through forums and other SO posts but have not come across how to fix this.

The warnings I get are project level warnings for a missing file. The files that are being shown have been deleted from the project navigator view (also choosing to delete from file system). However it still seems to be showing up as somehow linked to the project, even though the file no longer appears in the Project navigator.

I have looked around and not found how I can tell Xcode that these files are gone, stop giving me warnings. Here's a screenshot that I get in Xcode4, but never got in Xcode 3.

Missing file warning Xcode 4


20 Answers: 

These solutions are way too difficult. The problem is that you have removed the project from filesystem but SVN still thinks they are there. Detaching project from SVN will work, the same for removing .svn folders BUT that is going to destroy your repository!

It is much easier to open console, browse to your folder ("cd /pathToYourFolder") and type the following command:

svn delete nameOfMissingFile

If the name of your missing file includes the @ character (eg: retina-specific artwork), ensure the file name terminates with the @ symbol:

svn delete nameOfMissingFile@2x.png@

For GIT repositories:

git rm nameOfMissingFile

 

In XCode 4.2.+ (possibly in 4+) you can avoid manual work and command line :

  1. Select project Project Navigator (Command - 1)
  2. Choose File - Source Control - Commit menu
  3. In the left pane, on top of it you have three icons, select the middle one - File view
  4. You will see the list of all missing files
  5. Select all of them and right-click - Discard changes. This will restore all deleted files from the SVN server and place them in your local SVN folder
  6. Drag and drop those files into the XCode project (Choose Sort-Date Modified in Finder to easily find them)
  7. Delete those files properly through XCode (select files and choose right-click Delete)
  8. Commit the project

And that's it :)

All those nasty warnings are gone!

Additionally for Xcode 6+: After selecting the file view 'middle icon' - you can click the checkbox to the left and this will mark them as deleted for SVN when you next commit!

 

In Xcode5 & Xcode6, below steps worked for me

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

then

Xcode -> Preferences -> Source Control -> check Enable Source Control

 

This worked for me:

File -> Source Control -> Hide Working Copy Status

then

File -> Source Control -> Show Working Copy Status

 

I solved it the following way:

  1. Check the path to the missing file.
  2. Create missing files at appropriate locations within your project directory
  3. Add them to your project using "Add Files to "project"" and create references only (do not copy the files)
  4. The warnings should disappear at this point.
  5. From within Xcode delete the files making sure you click "Delete" instead of the default "Delete Reference Only"
  6. You're done.
 

I had that bug and found no way to solve it other than creating an empty file on that position and then deleting it. It happened with files I had deleted from the project, and cleaning, building, deleting manually the Derived Data directory didn't work either. I believe it is a bug, and that it can be quite painful if it happens with more than a few files.

 

I also had this problem, and as user151215 has described it IS due to .svn folders.

I had a old .svn folder, not in the project itself but in the projects parent folder.

the offending .svn folder will have an entries file that contains your missing files. So you can use Teminal and search for a missing file name string, e.g. grep -lir BagController.m yourRootDevDir/*

simpler than enabling hidden files in finder, just use the terminal. cd to relevant directory, and mv .svn ~/.Trash

Hope this helps!

 

Go in to the appropriate directory and run:

svn revert fileName
 

I used the following way to deal with tha issue:

Launch the terminal and cd to the project directory. (ex: cd /Users/Mauro/Src/Pippero-1.2/ )

Then enter the following command:

find . -name .svn -exec rm -rf { } \;

the command will recursively search for files (and folder) called .svn and delete them

 

Disabling SVN in Xcode prevents these issues (assuming you're managing your repository with another SVN tool). See this question:

Can you disable version control integration in Xcode 4?

Obviously, this might not be practical if there are other Xcode projects you do want to use SVN with.

 

I am using svn and manage to solve this problem by

svn delete pathToMissingFile

which is going to remove the local svn copy of the missing file as well as the copy in the remote repository.

or

svn revert pathToMissingFile

which is going to discard changes on the missing file which mean putting the missing file back to where it was.

 

All the above didn't work to solve the same kind of issue I had. Doing some search, I understood that the issue I had was related to SVN conflicts.

I found out that there were conflicts using the command line:

svn status

Then all conflicted files had to be resolved

svn resolved filename1 filename2 ...

Once the conflicts resolved, the warnings were gone from Xcode

 
  1. Commit and push your changes.
  2. Restart Xcode.
 

It's very Simple,

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

and Do not forget to do cmd+shift+k

 

Press Cmd + 7 after build and select the latest build action. Does it look like good old Xcode a bit? :) enter image description here

 

In my case

  1. I simply open SvnX.
  2. All missing Files are marked in red. Select and delete them.
  3. Then all Xcode Warnings were gone.
 

The answer by Alex fixed my issue of missing files.

I had one other problem ( though it is not related to missing files, i feel this would be the better topic)

  1. I needed to copy a set of images into my project.
  2. I simply created a group (though i know that group doesnt map to the physical folder) and dragged the images into the group (selected "Copy to.." option).
  3. SVN status showed all of them in "A".
  4. Now when I went into actual file system, I found that all images where copied to the root folder of my project. As it didnt look well, I created a physical folder inside the images folder in my project and copied all the added images there.
  5. SVN then showed all files in red.
  6. I deleted the references of all the red files.
  7. With the "Add File" option, I then added the images from the newly created folder.
  8. Now SVN fails to show status of the files as "A", and no way I can check them in.
  9. Tried out many steps like trashing them adding again from a different folder etc, but there wasnt any luck.

I fixed this by going directly into the repository, create a new directory under images so that the physical folder is now in the SVN server

I then took an update of the source, and got the newly created directory inside my working copy (though it is not added to the project).

I then copied the images to that directory and added them to the project using "Add File" option, which brought me back the "A" status and I was able to check in the files.

Just wanted to share this.....because it took a lot of time from me.

-anoop

 

Dont delete the file directly in your .xcode folder. Delete files from xcode project navigator. (Right click on that file and choose move to trash).

Now, To clear this issue add same files in same location. And delete from the project navigator.

 

I didn't have to do anything. I committed my code and pushed it up. Turned off XCODE. Pulled it down again and everything just worked.

 

Overview:

In my case there was an xcode Project called Sample in the following folder path /folder1/folder2.

There was a .git file inside /folder1/folder2/Sample/ which is expected.

Root cause:

There was another .git file in the parent directory (/folder1) which was causing the issue. The folders might have been deleted leaving behind the .git file

Solution

rm -rf /folder1/.git

Clue

If moving your project to a completely new location fixes the issue where there was no .git file in the parent directories up the hierarchy then it is a clue that the above solution could work.