Projekt, nad którym pracowałem od 2 miesięcy, przestał działać bez powodu, ponieważ Xcode utknął na „Indeksowaniu”. Nie mogę już zbudować projektu. Jeśli próbuję budować, Xcode zawiesza się i muszę wymusić zakończenie. Dzieje się tak tylko w przypadku tego projektu.
Próbowałem wyczyścić wszystkie pochodne dane, ale nie pomogło.
Używam Xcode 4.5.2.
Jakieś pomysły?
Odpowiedzi:
Jeśli problem nie został rozwiązany, zastąp ten plik plikiem kopii zapasowej.
źródło
Nuking Derived Data to pierwsza rzecz, którą należy wypróbować we wszystkich przypadkach niewłaściwego zachowania Xcode
źródło
Miałem dokładnie ten problem, był on spowodowany przez 20-elementowy literał tablicy. Musiałem przejść na inną składnię. Całkiem głupie.
źródło
rm -rf ~/Library/Developer/Xcode/DerivedData
źródło
Miałem podobny problem i stwierdziłem, że przypadkowo zdefiniowałem klasę jako jej własną podklasę. Nie otrzymałem żadnego ostrzeżenia ani błędu, ale kompilacja utknęła.
źródło
Podczas korzystania z Xcode 6 i mówi
Możliwe, że wystąpienie make już działa. Zabij proces i indeksowanie postępów. Głupie, ale działało dla mnie.
źródło
Kolejna rzecz, którą możesz wypróbować, jeśli próbujesz rozwiązać problemy z indeksowaniem i jesteś tak daleko na stronie!
Spróbuj dodać tę flagę do ustawień kompilacji.
-Xfrontend -warn-long-expression-type-checking=400
Spowoduje to ostrzeżenie, gdy kompilator będzie potrzebował dużo czasu na wywnioskowanie złożonego wyrażenia.
Może to spowodować błąd kompilacji, który zniknie po znalezieniu wolnych wyrażeń, a następnie usunięciu flagi kompilacji.
źródło
Przytrzymaj alt> Produkt> Wyczyść folder kompilacji
źródło
Jest to błąd Xcode (Xcode 8.2.1) i zgłosiłem to firmie Apple, będzie się to działo, gdy masz duży literał słownikowy lub zagnieżdżony literał słownikowy. Musisz podzielić słownik na mniejsze części i dodawać je metodą dołączania, dopóki Apple nie naprawi błędu.
źródło
com.apple.dt.SourceKitService
proces. Następnie XCode zacząłby ponownie indeksować zamiast utknąć.źródło
com.apple.dt.SKAgent
w Xcode 10.Dla mnie całkowite zamknięcie Xcode i ponowne uruchomienie projektu zadziałało.
Nie jest to rozwiązanie pierwotnego pytania, nie sądzę, ale przed usunięciem plików i folderów jest jeszcze jedna prosta rzecz, którą należy wypróbować, itp. Podziękowania dla tej odpowiedzi za pomysł.
źródło
To mi się przydarzyło. Jeśli używasz cocoapods, zrób to:
źródło
Miałem podobny problem, w którym Xcode spędzał dużo czasu na indeksowaniu i często zawieszał się budowanie projektu, w którym to momencie musiałem wymusić zamknięcie i ponowne uruchomienie Xcode. To było bardzo irytujące.
Wtedy zauważyłem ostrzeżenie w projekcie o niewłaściwym przydzieleniu
self
jako delegat. Rzeczywiście, w deklaracji klasy brakowało protokołu. Zwróć uwagę, że istnieje podobne przypisanie w przykładowym kodzie PO (chociaż nie można stwierdzić na podstawie próbki, czy zadeklarowano prawidłowy protokół):Po usunięciu tego ostrzeżenia (poprzez prawidłowe zadeklarowanie zaimplementowanego protokołu) Xcode przestał działać nieprawidłowo. Ponadto, należy pamiętać, że mam projekt nie wykonać poprawnie od metody protokołu zostały wdrożone. Po prostu Xcode nie mógł potwierdzić, że protokół powinien faktycznie zostać zaimplementowany przez klasę.
źródło
Nic nie pracował dla mnie, mój projekt jest zbyt duży (scalanie obiektywne
c
,c++
,swift
orazjava
pliki z j2obj). Wyłączyłem indeksowanie Xcode i przez miesiące pracowałem bez dokończenia kodu (i to jest uciążliwe). Ale w końcu znalazłem obejście. Chodzi o to, aby Xcode indeksował kod, ale aby ograniczyć użycie procesora za pomocą zewnętrznego narzędzia, takiego jakcputhrottle
.Więc najpierw musisz zainstalować cputhrottle w terminalu
Następnie ogranicz proces indeksowania Xcode w ten sposób (20 = 20%)
Przedstawiłem tutaj moje „rozwiązanie” ze szczegółami dotyczącymi trybu: Jak zapobiec używaniu przez Xcode 100% procesora podczas indeksowania dużych projektów
źródło
Miałem podobny problem w Xcode 6.4. Pasek postępu wskazywał, że „Indeksowanie” było „Wstrzymane”. Próbowano usunąć projekt.xcworkspace, a następnie usunąć pochodne dane, jak opisano powyżej. Wydawało się, że nie pomaga. Zauważając, że powyższe posty również sugerują naprawianie ostrzeżeń, a ponieważ odziedziczyłem ten ogromny projekt ze 180 ostrzeżeniami, powiedziałem sobie: „Jak to wygląda, do diabła, dobry dzień na naprawianie ostrzeżeń”. Gdy naprawiałem ostrzeżenia, pół godziny później zauważyłem, że pasek postępu „Indeksowanie” wzrósł z 10% do około 20%. Godzinę później było już 50%, potem kolejna godzina 80%, a po kolejnej pół godzinie było już gotowe! Wniosek: Dodaj „długi obiad lub drzemkę” do powyższych sugestii.
źródło
Doświadczyłem tego samego problemu w przypadku Xcode 7.0 beta. W moim przypadku wartości „Profil obsługi administracyjnej” i „Identyfikator pakietu produktów” w „Ustawieniach kompilacji” różniły się między wartościami PROJECT i TARGETS. Ustawiłem dla nich te same wartości. Użyłem też tych samych wartości dla CELÓW „appName” i „appNameTest”. Następnie zamknął projekt i ponownie go otworzył. To rozwiązało moją sprawę.
źródło
W moim przypadku usunięcie katalogu danych pochodnych nie pomogło. Najwyraźniej miałem plik zablokowany przez inny proces, ponieważ po zamknięciu kilku okien terminala i emacsa oraz zakończeniu procesu natywnego programu pakującego, wszystko się rozwiązało.
źródło
Dla mnie popełniłem głupi błąd. Piszę taką klasę:
Klasa dziedziczy samą siebie, która powoduje zamrożenie. Brak wskazówki dotyczącej wiadomości od Xcode.
źródło
Doświadczyłem tego problemu w niektórych projektach z Xcode 9.3.1 iw moim przypadku problem jest spowodowany szybkim kodem, który z jakiegoś powodu Xcode nie lubi. Ten problem jest trudny do rozwiązania, ponieważ trudno jest znaleźć plik powodujący problem.
Kiedy mam ten problem, usuwam niektóre pliki z projektu Xcode (usuwanie odniesień) i próbuję sprawdzić, czy indeksowanie działa. Mój proces, aby to zrobić
W moim przypadku miałem definicję klasy z reaktywnym rozszerzeniem w tym samym pliku iz jakiegoś powodu Xcode tego nie lubi, przeniosłem reaktywne rozszerzenie do innego pliku i teraz indeksowanie działa dobrze.
źródło
Zatrzymaj także uruchomioną aplikację. jeśli masz inną aplikację działającą z Twoim xcode, najpierw ją zatrzymaj, a indeksowanie powinno być kontynuowane.
źródło
W moim przypadku przyczyną było to, że otworzyłem ten sam plik jednocześnie w głównym edytorze i asystencie . Kiedy zamknąłem Assistant Editor, to się udało. (Xcode w wersji 7.2.1)
źródło
Zamknij swój Xcode, zamknij dowolnego klienta git (drzewo źródłowe lub terminal), jeśli jest otwarty, i na koniec zrestartuj projekt.
źródło
Zmierzyłem się z tym ostatnio w XCode 7.3.1 - zauważyłem, że użycie pamięci RAM idzie w 100% do CleanMyMac3. Problem magicznie naprawił się po ponownym uruchomieniu komputera. Jednak szczerze mówiąc, już poszedłem naprzód i wypróbowałem zaakceptowaną odpowiedź, więc na wszelki wypadek będziesz chciał zrobić to samo przed ponownym uruchomieniem :-)
źródło
Naprawiłem to, po prostu usuwając aplikację z mojego urządzenia i przebudowując.
źródło
Miałem ten sam problem w Swift 2.2
Miało to związek z funkcją przeciążoną funkcją ogólną
wszystko, co musiałem zrobić, to usunąć jedno z nieużywanych przeciążeń
źródło
Mój przypadek: to nie był plik project.xcworkspace, nie był to folder danych pochodnych.
Zmarnowałem dużo czasu. Gorzej, brak komunikatu o błędzie. Brak wskazówek ze strony Xcode. Całkowicie zagubiony.
Wreszcie ta funkcja (z więcej niż 10 parametrami) jest odpowiedzialna.
Zwariować! Prawda jest taka, że jest to niepokojące (ponieważ nie ma błędu składniowego ani żadnego typu)
źródło
W przypadku problemu z indeksowaniem XCode 9.3 - Odinstaluj XCode i zainstaluj ponownie od zera. Pracuje dla mnie.
źródło
Ten problem wystąpił, gdy na moim komputerze brakowało miejsca na wymianę. Zamknięto kilka programów i kart przeglądarki, a kompilacja nagle się udała po 30 minutach utknięcia w miejscu. Nie ma to nic wspólnego z danymi pochodnymi, zablokowanymi plikami itp. Po mojej stronie.
źródło
Wypróbowałem wszystkie wymienione rzeczy, indeksowanie ciągle się zawiesza. Pomogło mi to: jeśli twoje indeksowanie jest zawieszone i jeden lub więcej szybkich procesów pochłania 99% twojego procesora - po prostu zabij to szybkie zadanie (a), poczekaj chwilę, a postęp powinien się przesunąć. Może się powtarzać, aż dojdzie do końca, w moim przypadku zabiłem ten proces 7 razy, ale na koniec indeksowanie zostało zakończone!
źródło
Miałem ten problem w projekcie SwiftUI. Okazało się, że jeden z moich widoków SwiftUI zawierał nieprawidłowo zadeklarowaną zmienną. Miałem:
gdzie potrzebowałem:
Nie wystąpił błąd kompilatora, tylko niekończące się indeksowanie. Po naprawieniu błędu projekt szybko się zbudował.
źródło