Xcode 8 - предупреждения об отсутствии файлов


127

С момента обновления до Xcode 8 с использованием Swift 2.3 у меня появилось несколько предупреждений об отсутствии файлов. Все они связаны с модулями, которые я использую.

Отсутствующие файлы

*.xcscheme 
*.cpp
*.xcuserstate
*.swift

Модули с отсутствующими файлами:

  • Царство (~ 38 из 43)
  • TextFieldEffects (~ 3 из 43)
  • BEMCheckBox (2 из 43)

Как мне исправить эту проблему?


Вы пробовали pod install?
Marc-Alexandre Bérubé,

@ Marc-AlexandreBérubé: да, я пробовал установить pod несколько раз. Удалил папку pod и сделал еще одну установку.
Алан

Ответы:


298

Это просто ошибка Xcode. Если вы удалите или переименуете файл, не выполняя фиксацию, Xcode увидит несоответствие между предыдущей gitфиксацией и текущим состоянием вещей и сообщит об этих предупреждениях. Они исчезнут, как только вы выполните git addоперацию, включающую удаление / переименование файла.


25
git addДостаточно добавить файлы в index ( ), не нужно их фиксировать (скорее всего, проект не готов к фиксации ...)
djromero

@djromero Спасибо, что выследили это! Вы хотите, чтобы я добавил это к своему ответу?
Мэтт

@matt конечно, не стесняйтесь делать это
djromero

новая фиксация исправила проблему для меня.
MatterGoal

34
Для меня это было так же просто, как быстро отключить, а затем снова включить управление версиями в настройках. Xcode> Pref> Source Control> снимите отметку с «включить исходный контроль» .... затем снова включите его после. И пуф! ушел!
BennyTheNerd

84

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

Xcode> Настройки> Контроль версий и снимите флажок « Включить контроль версий ».


Удаляет ли это параллельное сравнение для старой фиксации из XCode? Я предполагаю, что так ...
Байрон Кутси

15

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

cd "project directory"
git add .

Вам нужно будет закрыть XCode и снова открыть, иначе будущие коммиты могут потерпеть неудачу.

Надеюсь, это кому-то поможет.


Потрясающие. Мой проект немного запутался из-за обновления модулей, и предупреждений стало слишком много ... Это исправило. Спасибо!
Colibri

8

Решаю проблему просто так:

  1. Добавить виновника в проект введите описание изображения здесь

  2. Удалить ссылку введите описание изображения здесь

Это очищает внутреннее состояние XCode, и сообщение исчезает.


Это действительно работает. Решение @matt сработало один раз в определенных обстоятельствах, но у меня есть неприятный файл, который продолжает возвращаться в XCode, и это единственный способ избавиться от него.
qwerty_so 02

7

Как насчет commitв Source Control.

Возможно, вам сначала придется отобразить содержимое пакета "your project name".xcodeprojи отобразить содержимое пакета, project.xcworkspaceа затем удалить xcuserdataпапку.

Если вы по-прежнему не можете выполнить фиксацию из-за проблемы с приложением-помощником, попробуйте выполнить следующие действия в каталоге проекта:

xcrun git config user.name "Your Name"
xcrun git config user.email YourEmailAddress

* Не забудьте повторно открыть проект, чтобы увидеть эффект.


7

Вы можете решить эту проблему, отметив опцию «Добавлять и удалять файлы автоматически» в X-Code-> Настройки-> Контроль версий.

Вот скриншот настроек


7

Xcode 8, кажется, часто пропускает git addудаленные / связанные файлы. Чтобы исправить это, нажмите Commit...в Source Controlменю Xcode , обязательно отметьте эти файлы (после которых стоит восклицательный знак!), Затем зафиксируйте изменения. Это должно очистить предупреждения.


5

У меня была эта проблема несколько раз, и, наконец, она у меня была после уродливых обходных путей! Я сел и отслеживал это, пока не нашел причину и не сохранил ссылки!

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

Вот быстрое решение, которое избавит от лишних хлопот и ругательств!

Удалите этот файл: ./.xcworkspace/xcuserdata/.xcuserdatad/UserInterfaceState.xcuserstate

И ошибки уходят!


Сначала это сработало, но вскоре после этого снова появились недостающие файлы.
Hackmodford

4

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


3

В моем случае модули, зарегистрированные в репозитории, генерируют пару сотен предупреждений о «недостающих файлах». Исправлено, удалив Pods из репо:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch Pods/*' --tag-name-filter cat -- --all

2

Я решил эту проблему, выполнив следующие действия:

  1. Очистить производные данные

  2. Отменить отсутствующие файлы при фиксации, а затем выполнить фиксацию.

  3. Чистая сборка

  4. Решено ..

Удачного кодирования .. :)


1

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

Переименуйте отсутствующий файл для меня в "xCustomCollectionViewCell.xib".

Теперь ошибка исчезла.

Снова переименуйте тот же файл с исходным именем "CustomCollectionViewCell.xib"


1

Это исправило это для меня:

git reset HEAD <path-to-deleted-file-that-was-causing-the-Xcode-warning>

0

У меня была эта проблема с Xcode 9.3

Решение, которое сработало для меня: добавьте пространство в файл, сохраните, затем дождитесь, пока !статус изменится на M, и удалите пространство, сохраните.

К сожалению, имея почти 100 файлов, которые нужно было просмотреть, я повторно просмотрел этот пост, и этот комментарий от @BennyTheNerd к ответу помог!

Для меня это было так же просто, как быстро отключить, а затем снова включить управление версиями в настройках. Xcode> Pref> Source Control> снимите отметку с «включить исходный контроль» .... затем снова включите его после. И пуф! ушел! - BennyTheNerd 16 янв.

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

Надеюсь это поможет!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.