Остановка xcode из индексации

Я работаю с xCode 4.5.2 и заметил, что если вы индексируете, вам нужно остановить все и позволить ему выполнять эту работу, иначе вы будете увязнуть. Это становится проблемой, так как проект большой, и индексирование занимает много времени, и оно будет делать это постоянно. В одном случае он проиндексировал весь проект, после того как я немного поработал над проектом, он начал переиндексировать почти 75% проекта. Я проверил с контролем источника, и никаких изменений в проекте не было в том объеме, в котором я работал над ним.

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

Ответы

Ответ 1

Просто запустите эту команду в терминале, чтобы отключить индексирование:

defaults write com.apple.dt.XCode IDEIndexDisable 1

Чтобы включить его, запустите это:

defaults write com.apple.dt.XCode IDEIndexDisable 0

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

ИЗМЕНИТЬ

Извините, пропущенная часть вопроса. Да, это сделает так, чтобы поиск не работал так быстро. Возможно, автозаполнение будет отключено. Индексирование - это то, что позволяет Xcode быстро помнить, что вы сделали. Отключение его будет затруднено, но это улучшает время загрузки.

Ответ 2

Если вы работаете над большим проектом и генерируете xcodeproj с cmake, вы столкнетесь с проблемами при добавлении в него больших двоичных файлов. Если cmake не распознает расширение, он по умолчанию помечает их как "исходный код"!

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

Одно простое решение - пометить ваши двоичные файлы и сообщить xcode, чтобы игнорировать их, например. (cmake 3.2 и выше, иначе XCODE_EXPLICIT_FILE_TYPE не поддерживается):

# fill cmake-variable with some files
file(GLOB MYGAME_BINARIES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "binaries/*")
# tag them as "not-sourcecode" ( maybe there is sth better than 'compiled', but it worked for my purpose)
set_source_files_properties( ${MYGAME_BINARIES} PROPERTIES XCODE_EXPLICIT_FILE_TYPE "compiled" )

Ответ 3

Какова бы ни была ваша причина этого хотеть (у меня "Внутренняя ошибка. Возможности редактирования могут быть ограничены") для Xcode 10.1:

defaults write com.apple.dt.Xcode IDEIndexDisable -bool true

Закройте Xcode, запустите это, откройте Xcode.