Xcode 8 - повідомлення про відсутність файлів


127

З моменту оновлення до Xcode 8 за допомогою Swift 2.3 у мене є кілька попереджень про відсутні файли. Всі вони пов'язані з стручками, якими я користуюся.

Файли, які відсутні, є

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

Стручки, які показують відсутні файли, є

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

Як виправити цю проблему?


Ви пробували pod install?
Марк-Олександр Берубе

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

Відповіді:


298

Це просто помилка Xcode. Якщо ви видалите або перейменуєте файл, не виконуючи цього, Xcode бачить невідповідність між попередньою gitфіксацією та поточним станом речей та повідомляє про ці попередження. Вони минають, як тільки ви виконайте git addвидалення / перейменування файлу.


25
Додавання файлів до індексу ( git add) достатньо, не потрібно насправді їх виконувати (швидше за все, проект не готовий до участі ...)
djromero

@djromero Дякую, що відстежили це! Чи хотіли б я додати це до своєї відповіді?
мат

@matt впевнений, сміливо робіть це
djromero

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

34
Для мене це було так само просто, як швидко відключити, а потім повторно включити керування джерелом відповідно до налаштувань. Xcode> Pref> Control Source> зніміть прапорець "enable control source" .... потім повторно ввімкніть його після. І пуф! пішов!
BennyTheNerd

84

Якщо ви не використовуєте керування джерелом xcode, але якийсь інший клієнт git (наприклад, джерело дерева чи терміналу), ви можете відключити керування джерелом у Xcode, і тоді попередження зникнуть.

Xcode> Налаштування> Керування джерелом та зніміть прапорець " Увімкнути керування джерелом "


Чи видаляє це потім порівняльне порівняння для старих комірок з XCode? Я припускаю, що так ...
Байрон Котзее

15

Я спробував усе це (і багато інших), але жоден з них не працював. Після годин спроб різних виправлень я виявив, що працює наступна процедура.

cd "project directory"
git add .

Вам потрібно буде закрити XCode і знову відкрити, або майбутні комітети можуть вийти з ладу.

Сподіваюся, що це комусь допоможе.


Дивовижно. Мій проект трохи заплутався, оновивши стручки, і попереджень стало занадто багато ... Це виправило це. Дякую!
Colibri

8

Я вирішую проблему просто цим:

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

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

Це очищає внутрішній стан XCode і повідомлення відходить.


Це справді працює. Рішення @ matt працювало один раз за певних обставин, але у мене неприємний файл, який постійно повзає до XCode, і це єдиний спосіб позбутися від нього.
qwerty_so

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-> Preferences>> Control Control

Ось скріншот налаштувань


7

Xcode 8, здається, часто пропускає git addвидалені / пов'язані файли. Щоб виправити це, торкніться меню Commit...Xcode Source Control, не забудьте перевірити ці файли (за якими слідує знак оклику!), А потім введіть зміни. Це повинно очистити попередження.


5

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

Оскільки хтось уже запропонував, це стосується контролю версій, так, так, так, ні, в деяких випадках це обов'язково має стосунок до файлів безпосередньо за допомогою Finder або будь-якого іншого (але не з XCode)

Ось швидке виправлення, яке економить багато клопоту та лайливих слів!

Видаліть цей файл: ./.xcworkspace/xcuserdata/.xcuserdatad/UserInterfaceState.xcuserstate

І помилки відходять!


Це спрацювало спочатку, але відсутні файли з’явились незабаром.
Hackmodford

4

У мене була така ж проблема. У моєму випадку в батьківському каталозі мого проекту був каталог .git. Видаливши цей батьківський каталог .git, помилки там, де їх немає.


3

У моєму випадку Pods, де зареєструвались у сховищі, генеруючи пару сотень попереджень про "відсутні файли". Виправлено це шляхом видалення 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> Control Source> зніміть прапорець "enable control source" .... потім повторно ввімкніть його після. І пуф! пішов! - BennyTheNerd 16 січня 1717 о 7:29

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

Сподіваюся, це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.