В недавнем обновлении Xcode были сделаны улучшения в билд системе, направленные на повышение скорости сборки проекта.
Допускаю, что эти изменения действительно ускоряют сборку проекта и не портят бинарник, если редактирование исходника происходит из встроенного редактора.
Но те, кто пользуется внешним редактором или использует внешние инструменты для работы с системой контроля версий, получат незабываемые ощущения.
Я использую VIM как основной редактор кода (да и вообще для любого текста) и GIT в эмуляторе терминала.
Раньше билд система Xcode сравнивала дату модификации файла с объектным файлом (как и делает большинство билд систем), если тот существует, и на этом основании строилось дерево зависимостей, необходимых для сборки. Полагаю, что очередная «оптимизация» билд системы Xcode строит дерево на основании флага об изменении файла во встроенном редакторе. А все, что изменялось из-вне, считается не модифицированным.
Сделал git checkout some_branch_name, жми cmd + shift + k для очистки проекта и его полной пересборки.
Отредактировал файл во внешнем редакторе, снова жми cmd + shift + k для очистки проекта и его полной пересборки.
Новое поведение билд системы теперь включено по умолчанию. Вернуть старую Build System можно из File > Project Settings…