145

A project I've been working for 2 months stopped working for no reason because Xcode got stucked on "Indexing". I can't Build the project anymore. If I try to build, Xcode freezes and I have to force quit. This happens only with this project.

I tried cleaning all derived data but didn't help.

I'm using Xcode 4.5.2.

Any ideas?

tomDev
  • 5,620
  • 5
  • 29
  • 39
  • Is the project associated with some kind of version control? When it is linked with a repository it tends to keep checking regularly the source status and after that indexes the files. If your project is big this might cause it to get stuck at indexing. – gibertoni Dec 12 '12 at 01:56
  • The project is not that big. Today I added the framework GameKit, but it was working great all day. When I was about to finish setting up the Game Center the problem started. I says "Indexing | Processed 3 of 4 Files". Sometimes "0 of 1 File", sometimes 83 of 84 files... I guess I will have to create a new project and copy and paste pretty much everything. Will a couple of hours... – tomDev Dec 12 '12 at 02:01
  • Additionally. If nothing works, try the [following](http://stackoverflow.com/questions/5392139/how-to-disable-indexing-in-xcode-4) to disable indexing (and probably losing some features =/) – gibertoni Dec 12 '12 at 02:03
  • 2
    Apple and its awesomeness have the same prob on xcode 5 – Coldsteel48 Dec 14 '13 at 22:45
  • BTW for me changing the date on MAC solved the problem ,(no idea why and how but it did solved the problem) – Coldsteel48 Dec 14 '13 at 22:46
  • Tried all methods. Doesn't work. Honestly Xcode have this problem from its first version. And it happens suddenly without any reason. – Bagusflyer Mar 01 '14 at 15:27
  • I had a similar problem, Indexing would never complete but it did not interfere with building and running, just prevented some autocomplete and stuff like that. This worked for me too, thanks. – Siegfoult Feb 26 '15 at 21:57
  • 2
    I am facing this problem on Xcode 9.1 . After 4 years they still have the same problem :| – Sabri Meviş Dec 06 '17 at 13:55
  • 3
    Xcode 10 GM too – QED Sep 13 '18 at 19:35
  • And I am having the same issue with Xcode 10.4, This is just some serious issue. They should atleast update it – Siddharth Choudhary Sep 18 '19 at 01:49

39 Answers39

181
  1. Open your Project Folder.
  2. Find ProjectName.xcodeproj file.
  3. Right-Click Copy and Paste to Safe Place.
  4. Right-Click Show Package Contents.
  5. Find project.xcworkspace file and delete that file.
  6. Reopen Your Project and clean and Rebuild.

If your problem is not solved then replace the file with your backup file.

CarmeloS
  • 7,868
  • 8
  • 56
  • 103
Pratik Mistry
  • 2,905
  • 1
  • 22
  • 35
  • 1
    Can't find the project.xcworkspace file inside the *.xcodeproj file on xcode 6.2. @aleksandar-vacic 's answer worked for me. – kiecodes Mar 22 '15 at 09:53
  • xcode still seems to be stuck on "indexing | waiting for xcodebuild", however, it does sucessfully build when I hit play, so thats something. – chiliNUT Mar 22 '16 at 13:44
  • 3
    Could you elaborate on what this file is for / how it is related to the problem at hand? – de. Aug 31 '16 at 12:54
  • @marlonpya I guess you are working with cocoapods in that case workspace file is separate from which I am talking about. Here I am talking about the file inside .project file. Hope this helps but always do backup before changing anything on project file or workspace files. – Pratik Mistry Mar 24 '17 at 02:27
  • While using cocoapods follow the same instructions & open the root folder .xcworkspace file – Leap Hawk Jan 02 '18 at 14:48
  • my solution is delete the app from device and clean and reinstall – showmyroutes Aug 16 '18 at 11:53
  • Tried this for an is-indexing-forever Xcode 13, but there is no .xcworkspace file inside as well. – Hardy Oct 16 '21 at 09:15
72
  1. Close that project from Xcode
  2. Open Xcode Organizer, find the problematic project
  3. Delete Derived Data folder in the Organizer
  4. Close/re-open Xcode

Nuking Derived Data is the first thing to try in all cases of Xcode misbehaving

Aleksandar Vacić
  • 4,433
  • 35
  • 35
27

I had this exact problem, it was caused by a 20 item array literal. Had to switch to different syntax. Pretty silly.

Jehan
  • 2,701
  • 2
  • 23
  • 28
  • 4
    Same for me. Works for array 4x4. Array 6x6 was too much for xcode... drama – dfens Jun 27 '16 at 17:01
  • @Jehan You are right but if your define type of an array it will not take time then my issue is resolved. Like e.g. let propertyType : [[[String : String]]] = [ [ ["propertyKey":"All Types"], ["propertyKey":"House"] ], [ ["propertyKey":"Apartment & Unit"], ["propertyKey":"Townhouse"] ]....... So on ] If you dont define type it will take more time – Shrikant K Sep 02 '16 at 10:22
  • 2
    Same for me. This is absolutely bizarre and real failure on Apple's part and Xcode – wuf810 Jan 06 '17 at 18:20
  • In fact my issue turned out not to be the number of values I was passing in but the fact I was taking the array values and concatenating them together : http://stackoverflow.com/questions/29707622/bizarre-swift-compiler-error-expression-too-complex-on-a-string-concatenation – wuf810 Jan 07 '17 at 08:47
  • To me it happened for `DictionaryLiteral` with more than 5 items – Ali Momen Sani Oct 31 '17 at 08:21
  • 1
    How do you find out those places in the code that the compiler gets stuck with? – Tomasz Nazarenko Nov 23 '17 at 09:37
  • 1
    @TomaszNazarenko - See my answer down below. You can get xcode to warn you about code that is taking too long to work out. – greencardigan Apr 24 '18 at 09:01
  • Thank you so much for this hint!! I had a typo for an enum value in an array literal. Instead of reporting a syntax error it kept hanging and I had no idea where and why. (Xcode 10.3) – Hans Terje Bakke Aug 23 '19 at 16:57
22
  1. Close any opened Xcode
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. Right click your PROJECT_NAME.xcworkspace, choose 'show content', and delete 'xcuserdata' folder
kjian
  • 343
  • 2
  • 5
10

I had a similar problem, and found that I accidentally defined a class as its own subclass. I got no warning or error for this but the compiling got stuck.

class mainClass : mainClass
{
    ...
}
Chuck
  • 4,662
  • 2
  • 33
  • 55
Philipp Otto
  • 4,061
  • 2
  • 32
  • 49
  • In fact, this was the solution to indexing getting stuck in my case. Great answer! – rghome Dec 20 '15 at 17:06
  • Why does this cause (effectively) a crash of a sub-process of Xcode and not produce an error like any other code bugs? – Kirkland Dec 20 '16 at 13:47
10

Another thing to try if your trying to solve indexing issues and you're this far down the page!

Try adding this flag to your build settings.

-Xfrontend -warn-long-expression-type-checking=400

build settings flag

It will cause warning where the compiler take a long time to deduce a complex expression.

warning

This may cause a build error which will go away after you find the slow expressions and then remove the build flag.

Thomas Vos
  • 12,271
  • 5
  • 33
  • 71
greencardigan
  • 393
  • 1
  • 3
  • 13
7

When using Xcode 6 and it says

Waiting for make

It might be that an instance of make is already running. Kill the process and indexing proceeds. Silly, but worked for me.

oarfish
  • 4,116
  • 4
  • 37
  • 66
7
  • First, disconnect from network. Both your wired network and wireless network should turn off.
  • Second, kill the com.apple.dt.SourceKitService process. Then XCode would start to index again instead of stuck.

enter image description here

ooOlly
  • 1,997
  • 21
  • 31
  • 2
    Seems to be called `com.apple.dt.SKAgent` in Xcode 10. – lemonmojo Jan 23 '19 at 09:02
  • Omg thank you, finally a simple working solution, in 2022 names changed a bit: the "com.apple.dt.SourceKitService" is now called just "SourceKitService" and there was another task called "swift.frontend" both were CPU 99% I killed both and building and indexing worked again. – Hussein Feb 04 '22 at 14:49
7

This happened to me. If you are using cocoapods do this:

  1. Delete project.xcworkspace
  2. Reinstall pods using pod install on the terminal
  3. It will create a new project.xcworkspace
  4. Open the new project.xcworkspace
  5. -> Clean
  6. -> Build
meow2x
  • 2,056
  • 22
  • 27
4

Hold alt > Product > Clean Build Folder

rogger2016
  • 821
  • 3
  • 11
  • 28
4

It's a Xcode bug (Xcode 8.2.1) and I've reported that to Apple, it will happen when you have a large dictionary literal or a nested dictionary literal. You have to break your dictionary to smaller parts and add them with append method until Apple fixes the bug.

Saeed Ir
  • 1,974
  • 2
  • 20
  • 22
3

For me completely closing out of Xcode and then restarting the project worked.

This is not the solution for the original question, I don't believe, but it is one more simple thing to try before deleting files and folders, etc. Credit to this answer for the idea.

Community
  • 1
  • 1
Suragch
  • 484,302
  • 314
  • 1,365
  • 1,393
3

Nothing worked for me, my project is too big (merging objective c, c++, swift, and java files with j2obj). I've disabled Xcode indexing and worked without code completion for months (and it's a pain). But finally I've found a workaround. The idea is to keep Xcode indexing the code, but to limit its CPU usage with an external tool like cputhrottle.

So first you need to install cputhrottle in terminal

brew install cputhrottle

Then limit the Xcode indexing process like this (20 = 20%)

sudo cputhrottle $(pgrep -f com.apple.dt.SKAgent) 20

I've exposed my "solution" here with mode details : How to prevent Xcode using 100% of CPU when indexing big projects

jptsetung
  • 9,064
  • 3
  • 43
  • 55
  • This helps, although cputhrottle is not in homebrew any more. You can use cpulimit instead, which is but has a slightly different syntax: "sudo cpulimit -l 20 -p $(pgrep -f com.apple.dt.SKAgent)" -- Although I now can trace again (impossible before), I'd prefer to find out what takes so long to index and skip that from indexing, but I have no idea what it is, how to find out, or how to skip something (I suspect some larger linked binaries or perhaps even boost?? I only compile C++, no use of Swift).. – Eike Apr 24 '19 at 11:11
  • Ok, I'll have to row back on that. It seemed to help but actually i got some weird behaviour later with cpulimiting skagent. That addresses only the symptom anyway, so not recommended. – Eike Apr 24 '19 at 12:29
  • I still uses this. The other choice is to disable Xcode indexing totally, but that's worst for me. If I don't do this Xcode keeps indexing at 100% each time I modify a file (so 24h/24 basically), and when I type in the editor it prints 1 character every 2 seconds, not usable. – jptsetung Apr 25 '19 at 12:39
  • Well, this is an effective if brute force method to address the problem. If that works for you, that is good. I had Xcode crashes / swod's after doing it. And then I tried step 3 in Kijans answer, (i.e. not only delete derived data, but remove .xcuserdata from .xcworkspace) and now all is fine again. Did not know about that one.. – Eike Apr 26 '19 at 12:51
2

I had a similar problem where Xcode would spend lots of time indexing and would frequently hang building the project, at which point I had to force-quit and relaunch Xcode. It was very annoying.

Then I noticed a warning in the project about improperly assigning self as a delegate. Sure enough, there was a missing protocol in the class declaration. Note that there is a similar assignment in the OP's sample code (though it is impossible to tell from the sample whether the correct protocol is declared):

leaderboardController.leaderboardDelegate == self;

After resolving that warning (by correctly declaring the implemented protocol), Xcode stopped misbehaving. Also, I should note that the project did execute correctly since the protocol methods were implemented. It was just that Xcode could not confirm that the protocol should in fact implemented by the class.

Peter Gluck
  • 8,168
  • 1
  • 38
  • 37
2

For me, I made a stupid mistake. I write a Class like this:

class A: A {
.......
}

A class inherit itself that causes the freezing. There is no message hint from Xcode.

Victor Choy
  • 4,006
  • 28
  • 35
  • This is a very probable cause. That was it in my case. I'm pretty sure I encountered this before, too. – Form Jan 09 '17 at 17:06
2

I'm working with Xcode 11.4.1 and I have the same problem with several projects. Every time, when internet connection is lost, indexing gets up. The best solution (it's just my opinion based on observing this problem):

- turn off internet and just kill the "com.apple...." process, then restart the Xcode(turn on connection)

or more easier

- just restart the Mac(with the internet)

2

2022 | Algorithm what to do:

  1. Open activity monitor and kill there com.apple.dt.SKAgent

If did not help:

  1. Close Xcode(cmd+Q). Run command in terminal:

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


If did not help:

  1. Restart PC

If did not help:

  1. Right click your PROJECT_NAME.xcworkspace, choose 'show content', and delete 'xcuserdata' folder

If did not help:

  1. run your project build with additional warning. For doing this you need to write:

    -Xfrontend -warn-long-expression-type-checking=100

    to the following place:

enter image description here

and optimize code at all of places.


If did not help:

Z. Uninstall XCode and install it from scratch


If did not help:

Z+1. answer of El Belga https://stackoverflow.com/a/50541767/4423545

Andrew_STOP_RU_WAR_IN_UA
  • 9,318
  • 5
  • 65
  • 101
1

Had similar problem in Xcode 6.4. The progress bar indicated that "Indexing" was "Paused". Tried deleting project.xcworkspace, then deleting Derived Data as described above. Did not appear to help. Noting that the posts above also suggest fixing warnings, and since I had inherited this huge project with 180 warnings, I said to myself, "What the hell this looks like a good day to fix warnings". As I was fixing warnings, a half hour later, I noticed that the "Indexing" progress bar had increased from 10% to about 20%. An hour later, it was at 50%, then another hour to 80%, then after another half hour it was done! Conclusion: Add "take a long lunch or a nap" to the above suggestions.

Jerry Krinock
  • 4,860
  • 33
  • 39
1

I experienced the same issue for Xcode 7.0 beta. In my case, values for "Provisioning Profile" and "Product bundle identifier" of "Build Settings" differed between PROJECT and TARGETS. I set the same values for them. And I also used the same values for TARGETS of "appName" and "appNameTest". Then closed the project and reopened it. That resolved my case.

manispin
  • 39
  • 3
1

In my case, deleting the derived data directory did not help. Apparently I had a file locked by another process, because after closing out a couple of terminal windows and emacs, and terminating a react-native packager process, everything resolved.

chetstone
  • 650
  • 1
  • 9
  • 19
  • Same here, I had interrupted a Carthage rebuild earlier. Apparently not all processes had stopped running, thus keeping some files in use I presume. Closing Terminal and closing-reopening XCode did the trick. – CyberDude Apr 08 '16 at 07:45
1

I have experienced this problem in some projects with Xcode 9.3.1 and in my case the problem is due to some swift code that for some reason Xcode doesn't like. This problem is hard to solve because is difficult to find what file is causing the problem.

When I have this problem, I removing some files from the Xcode project (removing references) and I try to test if indexing works. My process to do so

  1. Remove some files
  2. Close Xcode
  3. Open Xcode
  4. If indexing finish try to rename some method if works probably the files you have removed they have something strange for Xcode.

In my case I had a class definition with a reactive extension in the same file and for some reason Xcode doesn't like it, I moved the reactive extension to another file and now the indexing works fine.

El Belga
  • 176
  • 1
  • 5
  • This is a real good solution as it allows to identify the bottleneck even in a code that you haven't written. In my case it was an unmaintained pod/lib and it took me days to identify it as no warning were output, even with the "-Xfrontend -warn-long-expression-type-checking=300" flags. – Cédric Sep 14 '18 at 15:34
0

Also stop running app. if you have another application running with your xcode, stop it first and you should have your indexing continue.

eNeF
  • 3,241
  • 2
  • 18
  • 41
0

For me, the cause was I opened the same file in both the Primary Editor and Assistant Editor at the same time. Once I closed Assistant Editor, it came through. (Xcode Version 7.2.1)

wye
  • 316
  • 4
  • 7
0

Close Your Xcode , close any git client(source tree or terminal)if it is opened and finally restart your project.

0

Faced this recently on XCode 7.3.1 - for me, I noticed RAM usage going to 100% on to CleanMyMac3. The problem magically fixed itself after I restarted my machine. In all fairness however, I'd already gone ahead and tried the accepted-answer, so you'll want to do the same before you restart just in case :-)

Angad
  • 2,803
  • 3
  • 32
  • 45
0

I fixed this by simply deleting the app from my device and rebuild.

robertsan
  • 1,591
  • 3
  • 14
  • 26
0

I had the same issue in swift 2.2

It had to do with a generic function overloaded function

func warnLog() {
    print("Warning line: \(#line) file: \(#file) ")
}

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

func warnLog<T>(input:T) -> T {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}

all I needed to do is remove one of the non used overloads

func warnLog<T>(input:T? = nil) -> T? {
    print("Warning line: \(#line) file: \(#file) ")
    return input
}
Chéyo
  • 9,107
  • 9
  • 27
  • 44
0

My case: it was not the project.xcworkspace file, it was not the Derived Data folder.

I've wasted a lot of time. Worse, no error message. No clue on the part of Xcode. Absolutely lost.

Finally this function (with more than 10 parameters) is responsible.

func animationFrames(level: Float,
                     image: String,
                     frame0: String,
                     frame1: String,
                     frame2: String,
                     frame3: String,
                     frame4: String,
                     frame5: String,
                     frame6: String,
                     frame7: String,
                     frame8: String,
                     frame9: String,
                     frame10: String) {
}

To go crazy! The truth is that it is worrisome (because there is no syntax error, or any type)

Markus
  • 1,147
  • 16
  • 26
0

For XCode 9.3 indexing issue - Uninstall the XCode and instal again from zero. Works for me.

Maximo Lucosi
  • 378
  • 4
  • 9
0

This issue happened to me when my machine was out of swap space. Closed several programs and browser tabs and the build suddenly succeeded after 30 minutes of being stuck in place. Nothing to do with derived data, locked files, etc. on my side.

0

I've tried all the things listed, indexing is keep freezing. This helped me: If your indexing is freeze, and you have one or more swift process eating 99% of your cpu - just kill this swift task(s), wait a bit, and progress should move. It can repeats, until it reaches finish, in my case I killed the process 7 times, but at the end, indexing was completed!

David
  • 857
  • 1
  • 11
  • 25
0

Had this problem on a SwiftUI project. Turned out one of my SwiftUI views had an incorrectly declared variable. I had:

@EnvironmentObject var roomViewModel

where I needed:

@EnvironmentObject var roomViewModel: RoomViewModel

There was no compiler error, just endless indexing. After I fixed the error, the project built quickly.

0

Yes each time I try to open my Main.Storyboard Xcode freezes suddenly. This was happening with only one of my projects then it happens to all my projects on Xcode.

Tried the following with no luck:

  1. Remove Xcode & reinstall it.

  2. Factor reset my mac.

  3. Create a new project and move folders to the new project. Also not worked for me.

Solution [In my case], which I believe it happens to most of you.

I have noticed that process named "IBAgent-iOS" consumes most of my CPU resources. Each time I want to open the storyboard it consumes up to 97% of CPU resources!

So I need to go to Activity Monitor > Search for this process name "IBAgent-iOS" (Mainly appears at the top) > click on it and Force Quit.

Dharman
  • 30,962
  • 25
  • 85
  • 135
Mohammed Hasan
  • 1,615
  • 2
  • 8
  • 13
0

I know this is a pretty old question, but the issue still exists. Here's what I found experiencing this.

Inside a NavigationLink, I was giving a parameter to a View that didn't take one. It hung the build and indexing, but didn't kick a compiler error. That is NOT cool.

Here's how I reproduced it. Inside a top level view that contains a Navigation View, I had the following block inside a List inside a Stack. So my top level view's hierarchy was something like (pseudocode):

Body {
    VStack {
        [CustomViewForPageHeader]
        List {
            (the code block pasted below)
            (some other things)
        }
    }
}

The offending part was this:

            if 0 < viewModel.taskUpdates.count {
                Section( "Chore updates"){
                    ForEach(viewModel.taskUpdates, id:\.id){ update in
                        if "complete" == update.statusType {
                            NavigationLink {
                                CompletedTaskApprovalView( update: update )
                            } label: {
                                Text(update.formattedMessage)
                                    .padding(.vertical)
                            }
                        }
                        if "reject" == update.statusType {
                            Text(update.formattedMessage)
                                .padding(.vertical)
                        }
                    }
                }
            }

Remembering that I had removed the parameter while restructuring some data, I was dismayed that the compiler didn't puke on this. I commented out the whole line, so it looked like:

            if 0 < viewModel.taskUpdates.count {
                Section( "Chore updates"){
                    ForEach(viewModel.taskUpdates, id:\.id){ update in
                        if "complete" == update.statusType {
                            NavigationLink {
                                //CompletedTaskApprovalView( update: update )
                            } label: {
                                Text(update.formattedMessage)
                                    .padding(.vertical)
                            }
                        }
                        if "reject" == update.statusType {
                            Text(update.formattedMessage)
                                .padding(.vertical)
                        }
                    }
                }
            }

And lo and behold, whammo, it worked just fine.

Uncommented it and removed the parameter...

            if 0 < viewModel.taskUpdates.count {
                Section( "Chore updates"){
                    ForEach(viewModel.taskUpdates, id:\.id){ update in
                        if "complete" == update.statusType {
                            NavigationLink {
                                CompletedTaskApprovalView()
                            } label: {
                                Text(update.formattedMessage)
                                    .padding(.vertical)
                            }
                        }
                        if "reject" == update.statusType {
                            Text(update.formattedMessage)
                                .padding(.vertical)
                        }
                    }
                }
            }

whammo, redux, again, worked fine.

I had everything stripped out of the CompletedTaskApprovalView while I was reworking the data model a little bit, so it looks like this (literally just a place holder):

import SwiftUI

struct CompletedTaskApprovalView: View {
    
    var body: some View {
        Text("Approve chores")
            .font(.title)
    }
}

The compiler never should have let me try to hand it a parameter. So I thought that was weird, and I wondered if my view's code file had some kind of funky non-visible corruption. Inside the top level view's file, I added a new view (SomeTestView) at the bottom...

struct SomeTestView: View {
    var body: some View {
        Text("this is just a thing")
    }
}

and added it to my loop..

            if 0 < viewModel.taskUpdates.count {
                Section( "Chore updates"){
                    ForEach(viewModel.taskUpdates, id:\.id){ update in
                        if "complete" == update.statusType {
                            NavigationLink {
                                //CompletedTaskApprovalView()
                                SomeTestView()
                            } label: {
                                Text(update.formattedMessage)
                                    .padding(.vertical)
                            }
                        }
                        if "reject" == update.statusType {
                            Text(update.formattedMessage)
                                .padding(.vertical)
                        }
                    }
                }
            }

Works fine.

Added a parameter to the instantiation above (but did NOT add one to the view's Struct definition)... and it behaved the same as the original issue - hung up the build and the indexing, seemingly endlessly, and never puked the parameter error I'd expect.

            if 0 < viewModel.taskUpdates.count {
                Section( "Chore updates"){
                    ForEach(viewModel.taskUpdates, id:\.id){ update in
                        if "complete" == update.statusType {
                            NavigationLink {
                                //CompletedTaskApprovalView()
                                SomeTestView( fish: "sandwich" )
                            } label: {
                                Text(update.formattedMessage)
                                    .padding(.vertical)
                            }
                        }
                        if "reject" == update.statusType {
                            Text(update.formattedMessage)
                                .padding(.vertical)
                        }
                    }
                }
            }

So that's freaky and 100% disappointing. I'm steering clear of diagnosing it further, but... if anyone is still running into this, give that a try; check out your parms and declarations carefully, and maybe you'll find a similar hiccup.

Weird. Frustrating. Confusing. Annoying.

ChrisH
  • 975
  • 12
  • 21
0

This worked for me

  1. Install pod again. pod install
  2. Run another simple project having pod file in it.
  3. Now run your project.
Manish Mahajan
  • 2,062
  • 1
  • 13
  • 19
0

in my Case : make the UIViewController inherent from self

Like That :

class HomePosVC: HomePosVC { }
0

Check the Frameworks and remove packages that are not being used.

-2

Command-Option-Shift-K to clean build folders.

-2

I too was facing the problem. I noticed that I have opened the same project twice.

So QuitXCode > Open your project and make sure only one instance is open > Clean > CleanBuild Folder in some cases > build.

It should work

Shahid
  • 102
  • 4