인덱싱에서 Xcode가 멈춤


116

내가 2 개월 동안 작업해온 프로젝트는 Xcode가 "인덱싱"에 갇혀서 아무런 이유없이 작동을 멈췄습니다. 더 이상 프로젝트를 빌드 할 수 없습니다. 빌드하려고하면 Xcode가 멈추고 강제 종료해야합니다. 이것은이 프로젝트에서만 발생합니다.

모든 파생 데이터를 정리하려고했지만 도움이되지 않았습니다.

Xcode 4.5.2를 사용하고 있습니다.

어떤 아이디어?


프로젝트가 일종의 버전 제어와 관련이 있습니까? 저장소와 연결되면 소스 상태를 정기적으로 확인하고 파일을 색인화하는 경향이 있습니다. 프로젝트가 크면 인덱싱이 중단 될 수 있습니다.
gibertoni

프로젝트는 그렇게 크지 않습니다. 오늘 GameKit 프레임 워크를 추가했지만 하루 종일 훌륭하게 작동했습니다. Game Center 설정을 마치려고 할 때 문제가 시작되었습니다. "인덱싱 | 파일 4 개 중 3 개 처리"라고 말합니다. 때로는 "0/1 파일", 때로는 83/84 파일 ... 새 프로젝트를 만들고 거의 모든 것을 복사하여 붙여 넣어야 할 것 같습니다. 윌 몇 시간 ...
tomDev

2
애플과의 awesomeness는 엑스 코드 5에서 같은 확률값이
로마 - MT

2
Xcode 9.1에서이 문제에 직면하고 있습니다. 4 년 후에도 여전히 같은 문제가 있습니다.
Sabri Meviş

3
Xcode 10 GM도
QED

답변:


163
  1. 프로젝트 폴더를 엽니 다.
  2. ProjectName.xcodeproj 파일을 찾습니다.
  3. 안전한 장소에 복사 및 붙여 넣기를 마우스 오른쪽 버튼으로 클릭합니다.
  4. 패키지 내용 표시를 마우스 오른쪽 버튼으로 클릭합니다.
  5. project.xcworkspace 파일을 찾아 삭제하십시오.
  6. 프로젝트를 다시 열고 정리하고 다시 빌드하십시오.

문제가 해결되지 않으면 파일을 백업 파일로 교체하십시오.


1
xcode 6.2의 * .xcodeproj 파일에서 project.xcworkspace 파일을 찾을 수 없습니다. @ aleksandar-vacic의 답변이 저에게 효과적이었습니다.
Kie 2015 년

xcode는 여전히 "인덱싱 | xcodebuild를 기다리는 중"에 멈춰있는 것처럼 보이지만 플레이를 눌렀을 때 성공적으로 빌드되므로 뭔가 있습니다.
chiliNUT

3
이 파일의 용도와 당면한 문제와 어떤 관련이 있는지 자세히 설명해 주시겠습니까?
드.

@marlonpya 나는 당신이 cocoapods로 작업하고 있다고 생각합니다.이 경우 작업 공간 파일은 내가 말하는 것과 별개입니다. 여기서는 .project 파일 내의 파일에 대해 이야기하고 있습니다. 이것이 도움이 되길 바라지 만 항상 프로젝트 파일이나 작업 공간 파일을 변경하기 전에 백업을 수행하십시오.
Pratik Mistry

cocoapods를 사용하는 동안 동일한 지침을 따르고 루트 폴더 .xcworkspace 파일을 엽니 다
Leap Hawk

70
  1. Xcode에서 해당 프로젝트를 닫습니다.
  2. Xcode Organizer를 열고 문제가있는 프로젝트 찾기
  3. 오거나이저에서 파생 데이터 폴더 삭제
  4. Xcode 닫기 / 다시 열기

파생 데이터 Nuking은 Xcode가 오작동하는 모든 경우에 가장 먼저 시도하는 것입니다.


9
Xcode 6.4에서는 Organizer 대신 Window → Projects로 이동해야합니다.
kennytm

받아 들인 대답보다 훨씬 간단한 해결책, 감사합니다!
Tim

8
파생 데이터는 내 컴퓨터의 ~ / Library / Developer / Xcode / DerivedData /에 있습니다.
Suragch

23

나는이 정확한 문제가 있었는데, 그것은 20 항목 배열 리터럴로 인해 발생했습니다. 다른 구문으로 전환해야했습니다. 꽤 어리 석다.


4
저도 마찬가지입니다. 어레이 4x4에서 작동합니다. 배열 좁은 엑스 코드 ... 드라마 너무 많이했다
dfens

@Jehan 당신이 맞지만 배열 유형을 정의하면 시간이 걸리지 않으면 내 문제가 해결됩니다. 예를 들어 let propertyType : [[[String : String]]] = [[[ "propertyKey": "모든 유형"], [ "propertyKey": "House"]], [[ "propertyKey": "Apartment & Unit" ], [ "propertyKey": "Townhouse"]] ....... So on] 유형을 정의하지 않으면 더 많은 시간이 소요됩니다
Shrikant K

2
저도 마찬가지입니다. 이는 애플의 부품 및 엑스 코드에 절대적으로 기괴한 실제 실패
wuf810

1
컴파일러가 붙어있는 코드의 위치를 ​​어떻게 알 수 있습니까?
Tomasz Nazarenko 2017

1
@TomaszNazarenko-아래 내 대답을 참조하십시오. 해결하는 데 너무 오래 걸리는 코드에 대해 경고하는 xcode를 얻을 수 있습니다.
greencardigan

18
  1. 열려있는 모든 Xcode를 닫습니다.
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. PROJECT_NAME.xcworkspace를 마우스 오른쪽 버튼으로 클릭하고 '콘텐츠 표시'를 선택한 다음 'xcuserdata'폴더를 삭제합니다.

9

비슷한 문제가 있었고 실수로 클래스를 자체 하위 클래스로 정의했음을 발견했습니다. 이것에 대한 경고 나 오류가 없지만 컴파일이 중단되었습니다.

class mainClass : mainClass
{
    ...
}

사실, 이것이 제 경우에 인덱싱이 막히는 해결책이었습니다. 좋은 대답입니다!
rghome 2015

이로 인해 Xcode의 하위 프로세스가 (효과적으로) 충돌하고 다른 코드 버그와 같은 오류가 발생하지 않는 이유는 무엇입니까?
Kirkland

8

Xcode 6을 사용할 때

만들기를 기다리는 중

make의 인스턴스가 이미 실행 중일 수 있습니다. 프로세스를 종료하고 인덱싱이 진행됩니다. 어리석지 만 나를 위해 일했습니다.


이것은 나를 위해 그것을 고쳤습니다. 백그라운드에서 "make start"를 실행하는 Docker 컨테이너가 있습니다.
Devin Young

7

인덱싱 문제를 해결하려는 경우 시도해야 할 또 다른 방법은 페이지 아래에 있습니다.

빌드 설정에이 플래그를 추가해보세요.

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

빌드 설정 플래그

컴파일러가 복잡한 표현식을 추론하는 데 오랜 시간이 걸리는 경우 경고가 발생합니다.

경고

이로 인해 느린 표현식을 찾은 다음 빌드 플래그를 제거한 후 사라지는 빌드 오류가 발생할 수 있습니다.


이것은 완벽하고 정확한 대답입니다.
jaya raj


4

이것은 Xcode 버그 (Xcode 8.2.1)이며 Apple에보고했습니다. 큰 사전 리터럴이나 중첩 된 사전 리터럴이있을 때 발생합니다. 사전을 더 작은 부분으로 나누고 Apple이 버그를 수정할 때까지 추가 방법으로 추가해야합니다.


4
  • 먼저 네트워크 연결을 끊습니다. 유선 네트워크와 무선 네트워크가 모두 꺼져 야합니다.
  • 둘째, com.apple.dt.SourceKitService프로세스를 종료하십시오. 그런 다음 XCode는 멈춤 대신 다시 색인을 생성하기 시작합니다.

여기에 이미지 설명 입력


1
호출 할 것으로 보인다 com.apple.dt.SKAgent엑스 코드 (10)에
lemonmojo

3

나를 위해 Xcode를 완전히 닫은 다음 프로젝트를 다시 시작했습니다.

이것은 원래 질문에 대한 해결책이 아니라고 믿지 않지만 파일 및 폴더 등을 삭제하기 전에 시도하는 것이 한 가지 더 간단 합니다. 아이디어에 대한 이 답변에 대한 크레딧 입니다.


3

이것은 나에게 일어난 일입니다. 코코아 포드를 사용하는 경우 다음을 수행하십시오.

  1. project.xcworkspace 삭제
  2. 터미널에서 'pod install'을 사용하여 포드를 다시 설치합니다.
  3. 새 프로젝트가 생성됩니다.
  4. 새 프로젝트를 엽니 다 .xcworkspace-> 정리-> 빌드

1
감사합니다. 나는 xcode11.1에서 문제에 직면하고있다 그리고 그것은 나를위한 일이다
라훌 파리 크를

1
Xcode 11.5에서도이 문제가 해결되었습니다.
frankenapps

2

Xcode가 많은 시간을 인덱싱하고 프로젝트 빌드를 자주 중단하는 비슷한 문제가 발생했습니다.이 시점에서 강제 종료하고 Xcode를 다시 시작해야했습니다. 매우 성가신 일이었습니다.

그런 다음 프로젝트에서 부적절하게 self대리인으로 지정되었다는 경고를 발견했습니다 . 물론 클래스 선언에 누락 된 프로토콜이있었습니다. OP의 샘플 코드에 유사한 할당이 있습니다 (샘플에서 올바른 프로토콜이 선언되었는지 여부를 알 수는 없지만).

leaderboardController.leaderboardDelegate == self;

(구현 된 프로토콜을 올바르게 선언하여) 경고를 해결 한 후 Xcode는 오작동을 중지했습니다. 또한 프로토콜 메서드 구현 되었기 때문에 프로젝트가 올바르게 실행 되었습니다 . 단지 Xcode가 프로토콜이 실제로 클래스에 의해 구현되어야한다는 것을 확인할 수 없었습니다 .


2

아무것도 (목적 병합 내 프로젝트가 너무 큰 나를 위해 일한 c, c++, swift, 및 javaj2obj로 파일). Xcode 인덱싱을 비활성화하고 몇 달 동안 코드 완성없이 작업했습니다. 그러나 마침내 해결 방법을 찾았습니다. 아이디어는 Xcode가 코드를 인덱싱하도록 유지하지만 다음과 같은 외부 도구를 사용하여 CPU 사용을 제한하는 것입니다.cputhrottle 입니다.

따라서 먼저 터미널에 cputhrottle을 설치해야합니다.

양조 cputhrottle 설치

그런 다음 Xcode 인덱싱 프로세스를 다음과 같이 제한하십시오 (20 = 20 %).

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

여기에 모드 세부 정보와 함께 "솔루션"을 공개했습니다. 큰 프로젝트를 인덱싱 할 때 CPU 100 %를 사용하는 Xcode를 방지하는 방법


이것은 cputhrottle이 더 이상 홈브류에 있지 않지만 도움이됩니다. 대신 cpulimit를 사용할 수 있습니다. 구문은 약간 다릅니다. "sudo cpulimit -l 20 -p $ (pgrep -f com.apple.dt.SKAgent)"-이제 다시 추적 할 수 있지만 이전에는 불가능했습니다. 인덱싱하는 데 너무 오래 걸리는 것이 무엇인지 알아 내고 인덱싱에서 건너 뛰고 싶지만 그것이 무엇인지, 알아내는 방법 또는 무언가를 건너 뛰는 방법을 모릅니다. ? 나는 C ++ 만 컴파일하고, Swift는 사용하지 않습니다.) ..
Eike

좋아, 나는 그것에 대해 다시 노를 젓는다. 도움이되는 것 같았지만 실제로는 나중에 cpulimiting skagent로 이상한 동작이 생겼습니다. 어쨌든 증상 만 해결하므로 권장하지 않습니다.
Eike

나는 여전히 이것을 사용합니다. 다른 선택은 Xcode 인덱싱을 완전히 비활성화하는 것이지만 나에게는 최악입니다. 이 작업을 수행하지 않으면 Xcode는 파일을 수정할 때마다 100 %로 색인을 생성하고 (기본적으로 24 시간 / 24 시간) 편집기에 입력 할 때 2 초마다 1 개의 문자를 인쇄하며 사용할 수 없습니다.
jptsetung

글쎄, 이것은 문제를 해결하기 위해 무차별 대입 방법으로 효과적입니다. 그것이 당신에게 효과가 있다면 그것은 좋습니다. 나는 그것을 한 후에 Xcode 충돌 / swod가 발생했습니다. 그런 다음 Kijans 답변에서 3 단계를 시도했습니다 (즉, 파생 된 데이터를 삭제할뿐만 아니라 .xcworkspace에서 .xcuserdata 제거). 이제 모든 것이 다시 정상입니다. 그 하나에 대해 몰랐습니다 ..
Eike apr

1

Xcode 6.4에서 비슷한 문제가 발생했습니다. 진행률 표시 줄에 "인덱싱"이 "일시 중지됨"으로 표시되었습니다. project.xcworkspace를 삭제 한 다음 위에서 설명한대로 파생 데이터를 삭제하려고했습니다. 도움이되지 않았습니다. 위의 게시물에서도 경고 수정을 제안하고 있으며, 180 개의 경고로이 거대한 프로젝트를 상속했기 때문에 "대체 경고를 수정하기에 좋은 날이 어떨까요?"라고 스스로에게 말했습니다. 경고를 수정하면서 30 분 후 "인덱싱"진행률 표시 줄이 10 %에서 약 20 %로 증가했음을 알았습니다. 한 시간 후, 50 %가되었고, 또 한 시간에서 80 %가되었고, 30 분 후에 끝났습니다! 결론 : 위의 제안에 "긴 점심 또는 낮잠"을 추가하십시오.


이것이 제 마지막 수단이라고 생각합니다.
Rishab

1

Xcode 7.0 베타에서 동일한 문제가 발생했습니다. 필자의 경우 "빌드 설정"의 "프로비저닝 프로파일"및 "제품 번들 식별자"값이 PROJECT와 TARGETS간에 달랐습니다. 나는 그들에 대해 동일한 값을 설정했습니다. 또한 "appName"및 "appNameTest"의 TARGETS에 대해 동일한 값을 사용했습니다. 그런 다음 프로젝트를 닫고 다시 열었습니다. 그것은 내 사건을 해결했습니다.


1

제 경우에는 파생 된 데이터 디렉토리를 삭제해도 도움이되지 않았습니다. 두 개의 터미널 창과 emacs를 닫고 react-native packager 프로세스를 종료 한 후 모든 것이 해결 되었기 때문에 다른 프로세스에 의해 파일이 잠긴 것 같습니다.


여기서도 이전에 카르타고 재건을 중단했습니다. 분명히 모든 프로세스가 실행을 중지하지 않았으므로 일부 파일을 사용 중이라고 생각합니다. 터미널을 닫고 XCode를 닫았다가 다시 열면 트릭이 발생했습니다.
사이버 멋쟁이

1

저에게는 어리석은 실수를 저질렀습니다. 다음과 같은 클래스를 작성합니다.

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

클래스는 자신을 상속하여 동결을 유발합니다. Xcode에는 메시지 힌트가 없습니다.


이것은 매우 가능한 원인입니다. 그게 제 경우였습니다. 나는 전에도 이것을 만났다고 확신합니다.
양식

1

나는 Xcode 9.3.1을 사용하는 일부 프로젝트 에서이 문제를 경험했으며 제 경우에는 Xcode가 좋아하지 않는 빠른 코드로 인해 문제가 발생했습니다. 이 문제는 문제를 일으키는 파일을 찾기가 어렵 기 때문에 해결하기 어렵습니다.

이 문제가 발생하면 Xcode 프로젝트에서 일부 파일 (참조 제거)을 제거하고 인덱싱이 작동하는지 테스트합니다. 그렇게하는 내 프로세스

  1. 일부 파일 제거
  2. Xcode 닫기
  3. Xcode 열기
  4. 인덱싱이 끝나면 제거 한 파일이 작동하는 경우 일부 방법의 이름을 바꾸려고하면 Xcode에 이상한 것이 있습니다.

제 경우에는 동일한 파일에 반응 확장이있는 클래스 정의가 있었고 어떤 이유로 Xcode가 그것을 좋아하지 않아 반응 확장을 다른 파일로 옮겼고 이제 인덱싱이 잘 작동합니다.


이것은 작성하지 않은 코드에서도 병목 현상을 식별 할 수 있으므로 정말 좋은 솔루션입니다. 제 경우에는 관리되지 않는 pod / lib이었고 "-Xfrontend -warn-long-expression-type-checking = 300"플래그를 사용해도 경고가 출력되지 않았으므로이를 식별하는 데 며칠이 걸렸습니다.
Cédric

0

또한 앱 실행을 중지하십시오. xcode로 실행중인 다른 애플리케이션이있는 경우 먼저 중지하고 인덱싱을 계속해야합니다.


0

저에게 원인은 기본 편집기보조 편집기 에서 동시에 동일한 파일을 열었 기 때문입니다. 어시스턴트 에디터를 닫으면 나왔습니다. (Xcode 버전 7.2.1)


0

Xcode를 닫고 git 클라이언트 (소스 트리 또는 터미널)가 열려 있으면 닫고 마지막으로 프로젝트를 다시 시작합니다.


0

최근 XCode 7.3.1에서이 문제에 직면했습니다. 저에게는 CleanMyMac3에서 RAM 사용량이 100 %가되는 것으로 나타났습니다. 컴퓨터를 다시 시작한 후 문제가 마법처럼 저절로 해결되었습니다. 그러나 공정하게도, 나는 이미 진행하여 수락 된 답변을 시도 했으므로 다시 시작하기 전에 똑같이하고 싶을 것입니다 :-)


0

내 기기에서 앱을 삭제하고 다시 빌드하여이 문제를 해결했습니다.


0

신속한 2.2에서 동일한 문제가 발생했습니다.

일반 함수 오버로드 함수와 관련이 있습니다.

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
}

내가해야 할 일은 사용하지 않는 과부하 중 하나를 제거하는 것입니다.

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

0

내 경우 : 그것은 project.xcworkspace 파일이 아니었고 Derived Data 폴더가 아니 었습니다.

많은 시간을 낭비했습니다. 더 나쁜 것은 오류 메시지가 없다는 것입니다. Xcode 부분에 대한 단서가 없습니다. 당연히 잃어 버렸습니다.

마지막으로이 함수 (매개 변수가 10 개 이상)가 담당합니다.

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) {
}

미쳐 버려! 진실은 (구문 오류 또는 유형이 없기 때문에) 걱정 스럽습니다.


0

XCode 9.3 인덱싱 문제-XCode를 제거하고 0에서 다시 설치합니다. 나를 위해 작동합니다.


1
XCode의 크기는 몇 KB가 아닙니다. 몇 GB입니다.
iphondroid

0

이 문제는 내 컴퓨터에 스왑 공간이 부족할 때 발생했습니다. 여러 프로그램과 브라우저 탭을 닫았고 30 분이 지난 후 갑자기 빌드가 성공했습니다. 파생 데이터, 잠긴 파일 등과 관련이 없습니다.


0

나열된 모든 것을 시도했지만 인덱싱이 계속 중단됩니다. 이것은 나를 도왔습니다. 만약 당신의 인덱싱이 멈추고 당신의 CPU의 99 %를 먹는 하나 이상의 빠른 프로세스가 있다면-이 빠른 작업을 죽이고 조금만 기다리면 진행이 진행될 것입니다. 완료 될 때까지 반복 할 수 있습니다. 제 경우에는 프로세스를 7 번 죽 였지만 결국 인덱싱이 완료되었습니다!


0

SwiftUI 프로젝트에서이 문제가 발생했습니다. 내 SwiftUI 뷰 중 하나에 잘못 선언 된 변수가있는 것으로 나타났습니다. 나는 :

@EnvironmentObject var roomViewModel

내가 필요한 곳 ​​:

@EnvironmentObject var roomViewModel: RoomViewModel

컴파일러 오류는 없었고 끝없는 인덱싱이었습니다. 오류를 수정 한 후 프로젝트가 빠르게 구축되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.