Swift 3/Xcode 8 Upgrade - 100 файлов DerivedData, отсутствующих при ошибках рабочей копии

Я только что обновил до последней версии бета-версии XCode и Swift, но после использования конвертера у моего проекта приложения теперь более 200 ошибок времени сборки. Все записи / "projectDirectoy" /DerivedData/XXXXXXXXX/XXXX/XXXXXXXXXXXX отсутствует в рабочей копии... где в XXXXX представлены различные пути к файлам в папке DerivedData.

Я попытался удалить папку DerivedData из места, указанного в ошибках.

Я попытался удалить все в папке DerivedData в ~/Library/.

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

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

Эти ошибки просто не исчезнут.

Любые идеи?

Ответ 1

Я столкнулся с теми же предупреждениями после обновления до xCode 8 GM, более 350. Большинство из них, где .swift файлы и изображения в каталоге активов.

Это проблема с управлением исходным кодом, которая, по-видимому, появляется, когда вы перемещаете/удаляете файлы проекта. Это либо новые предупреждения, либо xCode 8 намного более строгие с контролем источника, чем xCode 7.

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

Вот что работало для всех моих проектов.

Короткий путь

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

1) Перейдите в меню "Управление источником" (верхнее меню рядом с окном и справкой) и нажмите "Обновить статус"

2) Еще раз перейдите в меню "Управление источниками" и нажмите "commit"

3) Окно фиксации должно открыться со всеми фиксациями. xCode считает необходимым. Поэтому просто введите фиксацию в текстовое поле и нажмите кнопку фиксации.

Повторите шаг 1-3, пока не будет больше элементов, выбранных xCode при открытии меню фиксации. Не переходите к шагу 4 до тех пор, пока все элементы, автоматически выбранные xCode, не будут выполнены, иначе вы можете получить ошибку при выполнении шага 4.

4) Откройте окно фиксации еще раз и, как указано на шаге 3, не должно быть больше элементов, выбранных xCode. Однако вы все равно должны видеть некоторые элементы на левой боковой панели, которые вызывают предупреждения.

Щелкните правой кнопкой мыши на элементе и нажмите все, введите фиксацию в текстовое поле и нажмите кнопку фиксации. Все должно завершиться, и предупреждение/ошибки должны исчезнуть (необязательно снова нажмите CommitMenu- > Refresh Status).

Если он не завершен, чем закрыть/снова открыть xCode и повторить шаг 1-4.

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

Длинный путь

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

1) Очистить xCode derrived data (необязательно)

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

Перейдите к настройкам xCode, щелкните вкладку "местоположения" и перейдите к расширенному. Нажмите на маленькую стрелку рядом с кнопкой перехода, чтобы открыть путь к производной папке. Закройте xCode полностью и удалите все содержимое, находящееся в этой производной папке.

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

"Мне также пришлось изменить свой параметр DerivedData по сравнению с Custom, который можно найти в Xcode > Preferences > Locations Tab."

2) Перезапустите проект xCode и дождитесь завершения индексации. Это может занять несколько минут, потому что вы просто удалили полученные данные.

3) Перейдите в меню "Управление источником" (главное меню рядом с окном и справкой) и нажмите "Обновить статус"

4) Еще раз перейдите в меню "Управление источником" и нажмите "Копировать"

5) Окно фиксации должно открыться со всеми фиксациями xCode считает необходимым. У меня было более 250, поскольку я никогда раньше не использовал контроль источника.

6) Нажмите фиксацию изменений внизу справа

7) У меня возникла ошибка, и операция не завершилась (если она работает для вас, чем перейти к 11)

8) Перейдите в меню "Управление источниками" и нажмите "Обновить статус"

9) Перейдите в "Управление источником" и нажмите "Копировать"

10) Нажмите фиксацию изменений в правом нижнем углу. На этот раз он предложил около 30 коммитов меньше, и у меня не было ошибок. Если вы по-прежнему получаете ошибки во второй попытке, попробуйте полностью закрыть Xcode и повторить его повторное открытие, а затем повторить этот шаг.

11) Перейдите в меню "Управление источниками" и нажмите "Обновить статус"

12) Перейдите в меню "Управление источником" и нажмите "commit"

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

14)Выберите каждый из этих файлов на левой боковой панели меню фиксации. Вы можете щелкнуть правой кнопкой мыши и нажать все флажки

15) Нажмите фиксацию изменений внизу справа

16) У меня возникла ошибка, и операция не завершилась. Поэтому я попробовал снова и ту же ошибку, поэтому я закрыл меню фиксации. Если он завершен, вы тоже это прекрасно.

17) Перейдите в меню "Управление источниками" и нажмите "Обновить статус"

Бум все предупреждения исчезли.

18) Закройте проект и xCode полностью

19) Откройте проект снова

20) Перейдите в меню "Управление источником" и нажмите "Обновить статус"

21) Перейдите в меню "Управление источниками" и нажмите "Копировать"

22) У меня внезапно появилось 150 + соображений. Убедитесь, что все предложения выбраны, а затем нажмите на фиксацию, и она должна завершиться без ошибок.

23) Очистите проект (Product- > Clean)

24) Перейдите в меню "Управление источниками" и нажмите "Копировать". Не должно быть никаких изменений, и на левой боковой панели также не должно быть файлов.

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

Если вы получите больше ошибок в будущем, скажите, что вы снова переместили файл, а не просто совершили коммиты, убедившись, что все выбрано.

Надеюсь, что это поможет.

Ответ 2

Это ошибка в XCode. Недопустимые файлы предупреждений исчезают, как только вы git -компилируете свое дерево проектов.

Ответ 3

У меня была папка-изгнанник .git в родительской папке, которая ничего не "ходила" -

проверьте в меню "Source Control", что все ваши "рабочие копии" действительно подключаются к папке с реальным исходным кодом

Ни одно из этих "решений" не работало для меня, кроме этой удаленной папки .git.

Ответ 4

Удаление DerivedData и git add. от терминала, даже без фиксации, решил эту проблему для меня.

Ответ 5

Просто покажите все скрытые файлы, а затем удалите папку git Откройте терминал и запустите эту команду, чтобы показать все скрытые файлы "defaults write com.apple.finder AppleShowAllFiles ДА killall Finder "

Ответ 6

Выполните следующие действия.

  • Открыть svn или исходное дерево.
  • Эти файлы будут поступать туда.
  • Удалите эти файлы из исходного дерева или svn.
  • Теперь перейдем к проекту xcode.
  • Теперь передайте код один раз. Все предупреждения

Ответ 7

Я решил эту проблему, удалив каталог .git в "yourProject" /Pods. И можно удалить каталог .git в главном каталоге "yourProject".

Ответ 8

Я думаю, что я решил проблему сейчас, удалив все экземпляры моей папки DerivedData и следуя инструкциям crashoverride777. Мне также пришлось изменить свой параметр DerivedData по сравнению с Custom, который можно найти в Xcode > Preferences > Locations Tab.

Ответ 9

i удалил старый объект модели из каталога проекта и решил проблему.