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

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

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

2 ответа

Решение

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

defaults write com.apple.dt.XCode IDEIndexDisable 1

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

defaults write com.apple.dt.XCode IDEIndexDisable 0

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

РЕДАКТИРОВАТЬ

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

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

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

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

Если вы работаете над большим проектом и генерируете 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" )
Другие вопросы по тегам