Xcode застрял на индексации


проект, над которым я работал в течение 2 месяцев, перестал работать без причины, потому что Xcode застрял на "индексации". Я больше не могу строить проект. Если я попытаюсь построить, в Xcode зависает и мне приходится принудительно закрыть. Это происходит только с этим проектом.

Я попытался очистить все полученные данные, но не помогло.

Я использую Xcode 4.5.2.

какие идеи?

30 95

30 ответов:

  1. откройте папку проекта.
  2. Найти Имя Проекта.xcodeproj файл.
  3. щелкните правой кнопкой мыши копировать и вставить в безопасное место.
  4. Правой Кнопкой Мыши, Показать Содержимое Пакета.
  5. найти проект.файл xcworkspace и удалите этот файл.
  6. откройте проект и очистите и перестроить.

если ваша проблема не решена, то замените файл на файл резервной копии.

  1. закройте этот проект из Xcode
  2. откройте Xcode Organizer, найдите проблемный проект
  3. удалить папку производных данных в органайзере
  4. закрыть / повторно открыть Xcode

Nuking производные данные-это первое, что нужно попробовать во всех случаях неправильного поведения Xcode

У меня была эта точная проблема, она была вызвана литералом массива 20 элементов. Пришлось переключиться на другой синтаксис. Довольно глупо.

при использовании Xcode 6 и он говорит

ждем make

возможно, экземпляр make уже запущен. Убейте процесс и индексация продолжается. Глупо, но работало на меня.

У меня была аналогичная проблема, и я обнаружил, что случайно определил класс как свой собственный подкласс. Я не получил никакого предупреждения или ошибки для этого, но компиляция застряла.

class mainClass : mainClass
{
    ...
}
  1. закройте любой открытый Xcode
  2. rm -rf ~/Library/Developer/Xcode/DerivedData
  3. щелкните правой кнопкой мыши имя вашего проекта.xcworkspace, выберите "Показать содержимое" и удалите папку "xcuserdata"

для меня полностью закрытие из Xcode, а затем перезапуск проекта работал.

Это не решение для изначального вопроса, я не верю, но это еще одна простая вещь, чтобы попробовать перед удалением файлов и папок, и т. д. Кредит на ответ за идею.

удерживайте alt > Product > Clean Build Folder

у меня была аналогичная проблема, когда Xcode тратил много времени на индексацию и часто зависал, создавая проект, и в этот момент мне пришлось принудительно выйти и перезапустить Xcode. Это было очень досадно.

затем я заметил предупреждение в проекте о неправильном назначении self как делегат. Конечно же, в объявлении класса отсутствовал протокол. Обратите внимание, что в примере кода OP есть аналогичное назначение (хотя это невозможно сказать из примера объявлен ли правильный протокол):

leaderboardController.leaderboardDelegate == self;

после разрешения этого предупреждения (правильно объявив реализованный протокол), Xcode перестал плохо себя вести. Кроме того, я должен отметить, что проект выполнялся правильно, так как методы протокола были реализованы. Это было просто, что Xcode не может подтвердить что протокол должен фактически реализовываться классом.

Это ошибка Xcode (Xcode 8.2.1), и я сообщил, что для Apple это произойдет, когда у вас есть большой словарный литерал или вложенный словарный литерал. Вы должны разбить свой словарь на более мелкие части и добавить их с помощью метода добавления, пока Apple не исправит ошибку.

  • во-первых, отключите доступ в интернет. Проводная сетевая карта и беспроводная сетевая карта должны быть отключены.
  • во-вторых, убить com.apple.dt.SourceKitService prcess. Тогда XCode снова начнет индексировать вместо того, чтобы застревать.

enter image description here

еще одна вещь, чтобы попробовать, если вы пытаетесь решить проблемы индексирования, и вы так далеко вниз по странице!

попробуйте добавить этот флаг в настройки сборки.

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

build settings flag

это вызовет предупреждение, когда компилятор займет много времени, чтобы вывести сложное выражение.

warning

Это может привести к ошибке сборки, которая исчезнет после того, как вы найдете медленные выражения, а затем удалите флаг сборки.

была аналогичная проблема в Xcode 6.4. Индикатор выполнения показал, что" индексация "была"приостановлена". Пробовал удалить проект.xcworkspace, затем удаление производных данных, как описано выше. Похоже, это не помогло. Заметив, что сообщения выше также предлагают исправить предупреждения, и поскольку я унаследовал этот огромный проект с 180 предупреждениями, я сказал себе: "какого черта это выглядит как хороший день для исправления предупреждений". Когда я исправлял предупреждения, через полчаса я заметил, что" индексация " прогрессирует планка увеличилась с 10% примерно до 20%. Через час это было на 50%, потом еще час до 80%, потом еще через полчаса это было сделано! Заключение: добавьте "возьмите длинный обед или вздремнуть" к вышеуказанным предложениям.

Я испытал ту же проблему для Xcode 7.0 beta. В моем случае значения для "профиля подготовки "и" идентификатора пакета продукта "" параметров сборки " отличались между проектом и целями. Я установил для них одинаковые значения. И я также использовал те же значения для целей "appName" и "appNameTest". Затем закрыл проект и снова открыл его. Это решило мое дело.

в моем случае удаление каталога производных данных не помогло. По-видимому, у меня был файл, заблокированный другим процессом, потому что после закрытия нескольких окон терминала и emacs и завершения процесса react-native packager все разрешилось.

для меня, я сделал глупую ошибку. Я пишу такой класс:

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

класс наследует себя, что вызывает замораживание. Нет никакой подсказки сообщения от Xcode.

Я испытал эту проблему в некоторых проектах с Xcode 9.3.1, и в моем случае проблема связана с некоторым swift-кодом, который по какой-то причине Xcode не нравится. Эту проблему трудно решить, потому что трудно найти, какой файл вызывает проблему.

когда у меня есть эта проблема, я удаляю некоторые файлы из проекта Xcode (удаление ссылок), и я пытаюсь проверить, работает ли индексирование. Мой процесс, чтобы сделать это

  1. удалить некоторые файлы
  2. закрыть Xcode
  3. Открыть Xcode
  4. если индексирование готово, попробуйте переименовать какой-либо метод, если работает, вероятно, файлы, которые вы удалили, у них есть что-то странное для Xcode.

в моем случае у меня было определение класса с реактивным расширением в том же файле, и по какой-то причине Xcode это не нравится, я переместил реактивное расширение в другой файл, и теперь индексирование работает нормально.

также остановить запуск приложения. если у вас есть другое приложение, работающее с вашим xcode, сначала остановите его, и вы должны продолжить индексирование.

для меня причиной было то, что я открыл то же самое и в Основной Редактор и Помощник Редактора в то же время. Как только я закрыл помощника редактора, он прошел. (Xcode Версии 7.2.1)

закройте Xcode, закройте любой клиент git (исходное дерево или терминал), если он открыт, и, наконец, перезапустите свой проект.

Я тоже столкнулся с проблемой. Я заметил, что я открыл один и тот же проект дважды.

Итак, QuitXCode > откройте свой проект и убедитесь, что открыт только один экземпляр > Clean > папка CleanBuild в некоторых случаях > build.

Он должен работать

столкнулся с этим недавно на XCode 7.3.1-для меня я заметил, что использование ОЗУ идет на 100% на CleanMyMac3. Проблема волшебным образом исправилась после того, как я перезапустил свою машину. Справедливости ради, однако, я уже пошел вперед и попробовал принятый ответ, поэтому вы захотите сделать то же самое, прежде чем перезапустить на всякий случай :-)

я исправил это, просто удалив приложение с моего устройства и перестроить.

у меня была такая же проблема в swift 2.2

Это было связано с общей перегруженной функцией 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
}

все, что мне нужно было сделать, это удалить одну из неиспользуемых перегрузок

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

Я закрыл свой xCode и снова открыл проект, решив мою проблему.

мой случай: это был не проект.файл xcworkspace, это не была папка производных данных.

Я потратил впустую много времени. Хуже того, нет сообщения об ошибке. Никаких подсказок со стороны 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) {
}

сойти с ума! Правда в том, что это вызывает беспокойство (потому что нет синтаксической ошибки или любого типа)

Я также столкнулся с этой проблемой при установке новой версии XCode. Я решил ее с помощью следующего раствора:
Я открыл свой проект в XCode на всю ночь, это исправило мою проблему.

Это случилось со мной. Если вы используете cocoapods этого:

  1. удалить проект.xcworkspace
  2. переустановите модули с помощью "pod install" на терминале
  3. он создаст новый проект.xcworkspace
  4. откройте новый проект.xcworkspace - > Clean - > Build

для проблемы индексирования XCode 9.3-удалите XCode и снова установите с нуля. Работать на меня.

эта проблема произошла со мной, когда моя машина была вне пространства подкачки. Закрыл несколько программ и вкладок браузера, и сборка внезапно преуспела после 30 минут застревания на месте. Ничего общего с производными данными, заблокированными файлами и т. д. на моей стороне.