Может это просто меня так раздражает "особенность":
После обновления с Xcode 6.0.1 до Xcode 6.1 все изменилось. Xcode 6.1 постоянно индексирует проект или компилирует исходные файлы. Проект небольшой. Он просто содержит кучу файлов Swift и AWS SDK 2.0 Cocoapods в рабочей области. Я не думаю, что это должно препятствовать плавной индексации и компиляции всего. Я попробовал с некоторыми aws-sdk-ios-samples, просто чтобы увидеть, как Xcode 6.1 работает с ними, и это закончилось тем же вечным ожиданием.
Какие решения я пробовал до сих пор:
- Удаление «Производных данных» в Организаторе и повторное открытие рабочего пространства. (не исправить)
- «Показать содержимое пакета» в файле .xcodeproj и удалить .xcworkspace, как в ( Xcode 4 - низкая производительность )
К сожалению, ни один из них не работал.
PS может стоит попробовать воссоздать проект? Настройки моего компьютера: MacBook Pro (Retina, 13 дюймов, середина 2014 г.), память 8 ГБ, 1600 МГц, DDR3, с Yosemite. (Думаю, этого достаточно для запуска этого небольшого проекта.)
Ответы:
Я попробовал многие из приведенных выше предложений, включая разделение файлов, установку бета-версии Xcode 6.2 и нарушение операторов конкатенации строк. Что в конечном итоге сделало это для меня, так это разделение массива объявлений литералов словарей, которые я использовал для тестовых данных, на несколько
.append
операторов.Кроме того, как бы то ни было, 6-я запись в этом массиве вызывает у меня проблему; пять работает нормально.
источник
init()
Пошаговая инициализация работает отлично. Стоит отметить, что мне тоже пришлось удалить.xcworkspace
файл.Единственное рабочее решение для меня - удалить все производные данные (не только для текущего проекта, просто очистить всю папку), а затем перезапустить Xcode.
Открыть файл / настройки в Xcode
Нажмите «Места» в правом углу всплывающего окна.
Щелкните значок маленькой стрелки рядом с «/Users/Mac/Library/Developer/Xcode/DerivedData». Это приведет вас к папке Xcode, которая содержит папку DerivedData (которая содержит все производные данные из ваших предыдущих проектов. .)
УДАЛИТЬ папку DerivedData
источник
Вы используете CocoaPods? Сегодня я столкнулся с той же проблемой. (Используя xCode 6.1.1)
Чтобы решить эту проблему, я удалил все
~/Library/Developer/Xcode/DerivedData
, вPods
папке моего проекта и<project>.xcworkspace
.Затем я открыл терминал, перешел в каталог своего проекта и
pod install
снова запустил .источник
Была такая же проблема сегодня. Xcode 6.3.2, средний проект Swift. В какой-то момент он начал индексацию и никогда не закончил индексацию. Код, который вызвал это, был словарем типа [String: [String]], так что строковый ключ dict со строковыми массивами в качестве значений. У меня было два из них с ключами от A до Z, и каждая из этих 26 записей содержала массив строк от 5 до 10 строк.
Очистка производных данных не помогла. Только комментирование этих изречений заставило его снова пойти.
Честно говоря, это просто смешно! Apple необходимо исправить Xcode! При компиляции проектов Swift это уже ужасно медленно, но подобные ошибки - это серьезный недостаток. Я не могу с этим делать свою работу должным образом!
источник
Для тех, у кого все еще есть эта проблема, я пришел к выводу, что это обходной путь, который избавляет вас от необходимости вводить объекты один за другим:
источник
Что касается меня, я пробовал все вышеперечисленное безуспешно; но все, что мне нужно было сделать, это удалить папку с производными данными, затем открыть другой случайный проект, подождать, пока он проиндексируется, и теперь мой исходный (неисправный) проект работает!
Сделайте одолжение миру разработчиков, яблоко и сделайте свои быстрые компиляторы с открытым исходным кодом - чтобы не мешала нам ваша некомпетентность.
источник
Я использую Xcode версии 7.3 (7D175)
Думаю, я мог понять основную проблему. Вот два случая, когда я застрял на этапе индексации:
Я создал замыкание, которое назначил переменной, и опустил сигнатуру типа. Я думаю, что у xcode были проблемы с этим шагом вывода типа. Если я правильно помню, одним из аргументов был CGPoint, у которого есть перегруженный конструктор. Моя гипотеза состоит в том, что существует слишком много возможностей того, что мое закрытие может принять в качестве аргументов.
Я переработал фабричный метод таким образом, что вместо возврата экземпляров одного типа он мог возвращать экземпляры многих типов с общим базовым классом. Похоже, что везде, где я использовал фабричный метод, мне приходилось приводить полученный объект к определенному типу (либо с помощью as?, Либо путем присвоения его переменной, которая принимает определенный тип). Опять же, шаг вывода типа, кажется, нарушен.
Похоже, то же самое происходит с объявлениями словарей, упомянутыми ранее. Я отправил отчет об ошибке с яблоком.
источник
У меня возникла такая же проблема после обновления до 6.1. Xcode зависает при компиляции или индексировании без создания конкретного сообщения об ошибке.
Проблема была наконец решена путем разбиения некоторых более длинных выражений в файлах swift на несколько более коротких выражений. Часть моей программы объединяет множество различных строковых переменных, чтобы сформировать более длинную строку. Попытки объединить их в одно выражение и с помощью оператора присваивания сложения потерпели неудачу. Мне удалось заставить его работать, выполнив что-то похожее на следующее (упрощенное):
Я получил эту идею из-за того, что в предыдущей версии Xcode много раз получал следующую ошибку: «Выражение было слишком сложным, чтобы его можно было решить в разумные сроки; подумайте о том, чтобы разбить выражение на отдельные подвыражения».
Надеюсь это поможет
источник
Я боролся с той же проблемой. Я пробовал два упомянутых решения (удаление производных данных и удаление .xcworkspace) безуспешно. Я также попытался медленно комментировать большую часть кода по крупицам и удалять файлы до тех пор, пока почти ничего не осталось, а индексация все еще зависала.
Я нашел решение, которое сработало для меня, я открыл проект со старой версией Xcode 6.1 (6A1030), у которой не было проблем с индексацией, затем вернулся к последней версии Xcode версии 6.1 (6A1052d), которую я использовал раньше, и индексация была исправил и продолжал хорошо работать.
Я пришел к выводу, что это ошибка Xcode версии 6.1 (6A1052d), которая, я надеюсь, улучшится в будущих выпусках.
Проблема действительно возникает время от времени, одно и то же исправление работает каждый раз. Я предполагаю, что другим решением было бы просто придерживаться более старой версии Xcode 6.1 (6A1030), но она не будет работать с устройствами под управлением iOS 8.1 и не будет иметь последних исправлений ошибок.
источник
Я пробовал это с Xcode 8.3.3. Вот мои результаты:
Вы можете написать отличный код Swift, который приведет к зависанию индексации.
Как только зависает индексация, зависает. Изменение кода Swift обратно на то, что не приводит к зависанию индексации, не помогает, он все равно зависает.
Закрытие проекта и повторное открытие в этой ситуации не помогает.
Выход из Xcode и его перезапуск помогает. Индексирование больше не будет зависать (то есть, если вы изменили код обратно на то, что не заставляет его зависать).
Также помогает перезагрузка Mac, хотя в этом нет необходимости.
Зависание вызвано прекрасным кодом Swift. Пример, на который я был похож
Индексирование зависало. Я закомментировал большую часть "??" строк, и все было хорошо (после выхода и перезапуска Xcode). Раскомментировал одну строку за другой. С некоторым количеством строк все было нормально, затем раскомментирование следующей строки заставило бы ее зависнуть.
Единственное, что помогает, видимо, - это изменение кода.
источник
В моем Xcode решение заключалось в том, чтобы закрыть все избыточные окна. По какой-то причине многие открытые окна делают Xcode очень медленным.
источник
В конце концов, я «решил» проблему, хотя это всего лишь временное решение.
Я создал еще один проект и по одному добавлял в него файлы. Затем я заметил «очень длинный» файл viewcontroller.swift. Затем я разбил его коды на модули и превратил эти многократно используемые коды в функции в другом быстром файле. Кроме того, я воспользовался предложением в Интернете, что длинные выражения следует разбивать на более короткие. Затем выполняется индексация и выполняется компиляция.
Так что на данный момент я "решил".
НО, я не думаю, что это правильно. Xcode IDE должна быть более чем способна обрабатывать мой «очень длинный» быстрый файл, всего 1500 строк. Я считаю, что это определенно ошибка (существующая уже давно), хотя Xcode 6.1 уже является обновлением Xcode 6.0.1.
источник
Для меня я удалил приложение Xcode, снова загрузил его и установил. Это решило проблему, по крайней мере, сейчас.
источник
Индексирование Xcode обычно для вашего кода для предложений и автозаполнения, среди прочего, например, помощь вам в раскадровках и наоборот. Но чтобы ускорить ваш проект xcode, вы можете выключить / включить его через терминал
Отключить
значения по умолчанию для индексации записать com.apple.dt.XCode IDEIndexDisable 1 Включить значения по умолчанию для индексации записать com.apple.dt.XCode IDEIndexDisable 0
Но лучше использовать быстрый Mac с хорошей оперативной памятью.
источник
Xcode 11.5 (11E608c) и все те же проблемы, через 6 лет после исходного вопроса. Я бы хотел «пометить» яблоко в этом вопросе, чтобы они могли увидеть этот беспорядок. Это большой проект (> 1000 файлов), и я был под часами, поэтому, когда я заметил индекс зависания, у меня было изменено более 100 файлов, и я не могу вернуться.
Все перепробовала:
Проблема заключалась в создании массива:
Что помогло мне обнаружить плохой файл Swift, так это то, что индексирование xcode заморозило, я сделал следующие шаги
SOURCEKIT_LOGGING=3 /Applications/Xcode.app/Contents/MacOS/Xcode &> ~/Documents/xcode.log
который запустит Xcode с подробным уровнем 3 и начнет регистрацию в файле журнала.Это не полное решение, но полезно узнать, где искать.
источник
Если вы не против вернуться к 6.0.1, пока они не выяснят это, у меня это сработало. У меня была такая же проблема с 6.1 и 6.1.1. Теперь я в порядке. Попробую 6.2 когда выйдет.
Вы можете найти предыдущие версии программного обеспечения Apple на официальном сайте разработчиков здесь: https://developer.apple.com/downloads/index.action
Если вы это сделаете, не забудьте сначала удалить текущую копию Xcode.
источник
Я использую Xcode 6.1.1 с быстрыми файлами на том же самом MacBook Pro.
Поскольку я продолжал добавлять строки в массив 3D-строк, Xcode внезапно стал непригодным для использования, и теперь я ничего не могу сделать.
Попробую вернуться на 6.1 и, надеюсь, проблема исчезнет.
источник
Я вижу это в Xcode 6.3.2. Я очень надеялся, что через год после релиза у них будет работать компилятор, но, увы.
Если ни одно из вышеперечисленных решений не работает, попробуйте проверить свой код на наличие синтаксических ошибок. В процессе рефакторинга я извлек замыкание, но забыл указать параметры:
Если я чему-то научился, работая в Swift, так это работать постепенно, чтобы не пришлось слишком много возвращаться, чтобы найти проблемный код.
источник
источник
Я использую Xcode 8.2 и тоже закончил с этой проблемой. Это началось после того, как я определил сложную переменную кортежа - массив кортежа с подмассивом кортежа. Все становится очень медленно, когда подмассив кортежа имеет свойство, которое вычисляется программно.
Как отмечалось в некоторых других ответах, индексация занимает вечность, и я считаю, что она пытается определить типы переменной.
Сначала я решил проблему, четко определив переменную с включенными типами. При обновлении свойства я сначала вычисляю его, а затем присваиваю кортежу, а не вычисляю при определении переменной.
Вот пример кода.
Суть в том, что не позволяйте Xcode выводить сложные структуры.
источник
У меня была такая же проблема. Мой Xcode - 8.2.1. Но в моем случае я хотел создать массив словаря с 33 парами ключ-значение. Я делал так, что застрял при индексации:
Для меня сработало следующее:
источник
У меня тоже была эта проблема, и я решил ее, удалив / изменив выражения с помощью оператора «+».
Я изменил это:
К этому:
Это решило проблему.
В конце 2013 года у моей машины максимальный объем MBP.
источник
Вы можете обновить до Xcode 6.1.1
Он был официально выпущен и для нас решена проблема индексации. В описании обновления говорится, что они применили исправления стабильности, поэтому очень вероятно, что оно будет работать более стабильно.
источник
Бета-версия Xcode 6.2 решила эту проблему для меня. Не молниеносно, но, по крайней мере, индексируется не вечно. Бета-версия не устанавливается поверх обычной установки Xcode, поэтому, если вам не нравится бета-версия, вы можете просто удалить ее.
Различные загрузки Xcode, включая бета-версию>
источник
У меня были такие выражения:
также
Итак, суть в том, чтобы переписать ваш файл, чтобы он содержал только выражения уровня детского сада, и проблема индексации исчезнет.
источник