Предупреждения об отсутствии файлов, появляющиеся после обновления до Xcode 4

Я недавно обновился до Xcode 4 (что является отличным обновлением), но теперь я получаю некоторые предупреждения, которых не получал раньше. Я просмотрел форумы и другие сообщения SO, но не нашел, как это исправить.

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

Я осмотрелся и не нашел, как я могу сказать Xcode, что эти файлы исчезли, перестаньте предупреждать меня. Вот скриншот, который я получил в Xcode4, но так и не получил в Xcode 3.

Предупреждение об отсутствии файла Xcode 4


person Scott    schedule 13.03.2011    source источник
comment
Если бы я был вами, я бы всегда импортировал ваши файлы в ваш проект, а не просто сохранял бы ссылку на них на вашем диске. Это действительно избавит вас от головной боли, если вы переместите файлы позже.   -  person sudo rm -rf    schedule 14.03.2011


Ответы (21)


Эти решения слишком сложны. Проблема в том, что вы удалили проект из файловой системы, но SVN все еще думает, что они есть. Отсоединение проекта от SVN будет работать, то же самое для удаления папок .svn, НО это уничтожит ваш репозиторий!

Намного проще открыть консоль, перейти к своей папке («cd / pathToYourFolder») и ввести следующую команду:

svn delete nameOfMissingFile

Если имя вашего отсутствующего файла включает в себя символ @ (например: изображение, относящееся к сетчатке), убедитесь, что имя файла заканчивается символом @:

svn delete [email protected]@

Для репозиториев GIT:

git rm nameOfMissingFile

person Sulthan    schedule 21.03.2011
comment
У меня была такая же проблема, и я решил ее через Терминал, используя: svn rm --force nameOfMissingFile - person ReachWest; 23.03.2011
comment
delete, remove, rm - все они делают одно и то же :) - person Sulthan; 29.03.2011
comment
Это лучший ответ, чем тот, который отмечен как правильный. Удаление папок SVN из проекта, находящегося под управлением SVN, может быть целым миром боли. Лучше всего использовать SVN для решения проблемы. Я последовал этому ответу, чтобы решить свою проблему, однако у меня была роскошь Cornerstone. Но в остальном круто. Спасибо :) - person jowie; 08.07.2011
comment
Похоже, у меня это не работает. Я бы добавил файл обратно, а затем удалил бы его, но то же предупреждение все еще появляется в сборке. Я даже пытался добавить файлы обратно в проект, а затем удалить их. Все та же проблема. - person Yenyi; 01.09.2011
comment
Это сработало для некоторых моих файлов, но не для всех. В конце концов, мне понадобилась комбинация svn delete, svn revert для нескольких других файлов и, наконец, некоторая очистка в Организаторе для моего репозитория SVN (отмена изменений в Организаторе для моего репозитория SVN позволила решить две последние проблемы). - person JasonD; 19.11.2011
comment
У меня это сработало, но сначала мне пришлось создать там фиктивный файл, прежде чем я смогу удалить его при использовании svn. Итак, вам нужно сделать touch nameOfMissingFile, а затем svn delete nameOfMissingFile --force - person Maciej Swic; 04.03.2012
comment
Мне также пришлось выйти и убить xcode, чтобы проблема исчезла. - person Twilite; 03.04.2012
comment
Выход и перезапуск Xcode решили для меня эту проблему. Мой базовый репозиторий SVN был в порядке, но отслеживание Xcode моих репозиториев перешло в плохое состояние после выполнения некоторых добавлений и удалений. - person Dan J; 21.04.2012
comment
Полное отключение SVN в XCode - хорошее решение этой проблемы (если вам не нужен SVN для другого проекта Xcode): stackoverflow.com/questions/5466254/ - person occulus; 28.06.2012
comment
Если вы используете инструмент с графическим интерфейсом, такой как Версии, для управления своими репозиториями, вы также можете удалить вредоносные файлы через браузер проекта. - person DenVog; 03.07.2012
comment
Кроме того, при использовании svn, если у вас есть файлы @ 2x.png, svn подавится знаком at, поскольку считает, что @ является указателем версии. Добавьте @ в конце, чтобы решить эту проблему, например: svn delete [email protected]@ --force - person avance; 09.10.2012
comment
Я подумал, что достаточно удалить файлы в Xcodes (4.5) Organizer / Repositories. Это не так! Была такая же ошибка, и этот ответ решил ее - person jfischer; 30.11.2012
comment
У меня не хватало 400 файлов, но, к счастью, в той же папке, поэтому я использовал: svn delete FolerName. Все благодаря @Sulthan. - person mavericks; 29.01.2015
comment
Я этого не понимаю. Если я удалю файл в XCODE и скажу ему выбросить его в корзину, почему я должен получить эту ошибку? Учитывая, что SVN является частью Xcode, разве он не знает, что, черт возьми, делает? Теперь у меня 96 файлов (слишком много, чтобы удалять по одному с помощью команды SVN), потому что тогда я больше не нуждался, а затем удалил В XCODE. ВЗДОХ! - person MajorHavoc; 07.02.2015
comment
Работает для XCode 8, просто пришлось перезапустить его после исправления репозитория. Не понимал, что проблема была в перестановке вещей в Git, спасибо! - person definitelyokay; 18.07.2016
comment
В моем случае это был каталог, и мне пришлось выполнить git rm -r ‹Directory› - person zirinisp; 15.09.2016

В XCode 4.2. + (Возможно, в 4+) вы можете избежать ручной работы и командной строки:

  1. Выбрать проект Project Navigator (Command - 1)
  2. Выберите File - Source Control - Commit menu
  3. На левой панели, сверху у вас есть три значка, выберите средний - Просмотр файлов
  4. Вы увидите список всех недостающих файлов
  5. Выделите их все и щелкните правой кнопкой мыши - Отменить изменения. Это восстановит все удаленные файлы с сервера SVN и поместит их в вашу локальную папку SVN.
  6. Перетащите эти файлы в проект XCode (выберите Sort-Date Modified в Finder, чтобы легко их найти)
  7. Удалите эти файлы должным образом через XCode (выберите файлы и щелкните правой кнопкой мыши Удалить)
  8. Зафиксировать проект

Вот и все :)

Все эти неприятные предупреждения исчезли!

Дополнительно для Xcode 6+: после выбора "среднего значка" в представлении файлов - вы можете установить флажок слева, и это пометит их как удаленные для SVN при следующей фиксации!

person Alex    schedule 26.03.2012
comment
Требовалось только до шага 5. На самом деле у меня не было файлов в SVN. - person Darren Reely; 14.02.2013
comment
Я провел рефакторинг проекта, что повлияло на другой проект из-за некоторого общего кода, а XCode жаловался на отсутствующие файлы, связанные с SVN. Мне потребовалось некоторое время, чтобы понять, что это проблема SVN, после того, как я вручную просмотрел исходный XML-код проекта и ничего не нашел. - person danfordham; 22.05.2014

В Xcode5 и Xcode6 для меня сработали следующие шаги

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

тогда

Xcode -> Preferences -> Source Control -> check Enable Source Control

person Shamsudheen TK    schedule 10.12.2013
comment
В Xcode 8.3.2 это работало около десяти минут, а затем все предупреждения вернулись :( - person Bob; 25.05.2017

Это как-то связано со скрытыми папками .svn в вашем проекте.

Я решил эту проблему, отключив проект от svn.

а. Откройте терминал и введите следующие команды:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

Это позволит вам просматривать папки .svn внутри вашего проекта.

б. Удалите все папки .svn в папках / подпапках вашего проекта.

c. Повторно включить скрытые файлы:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

d. Теперь ваш проект отделен от svn, и у вас больше нет проблем со сборкой.

е. Повторно добавьте свой проект в svn или что-то еще.

Я сам новичок, и это был мой способ решения этой проблемы, поэтому я не уверен, что это лучший способ. Так или иначе, проблема была решена.

person Robert Neagu    schedule 14.03.2011
comment
Не стоит возиться со скрытыми папками и файлами SVN, вы можете попасть в запутанный беспорядок SVN. Лучше всего использовать команду svn delete, чтобы привести в порядок недостающие файлы. - person jowie; 08.07.2011
comment
Это тот путь, которым я в итоге пошел. Да, он удаляет всю сохраненную информацию SVN, но на самом деле это было что-то, что кто-то вложил в конкретный проект, и я не хотел оставлять его. Я хотел начать все сначала и не заботился о поддержании конкретного управления версиями. - person Scott; 15.03.2012
comment
Я просто убиваю все Finder, перезапускаю его. Теперь проблема ушла. Спасибо - person JHHoang; 08.04.2012

Это сработало для меня:

File -> Source Control -> Hide Working Copy Status

тогда

File -> Source Control -> Show Working Copy Status

person Tyson    schedule 29.10.2012

Я решил это так:

  1. Проверьте путь к отсутствующему файлу.
  2. Создайте недостающие файлы в соответствующих местах в каталоге вашего проекта.
  3. Добавьте их в свой проект, используя «Добавить файлы в« проект »», и создавайте только ссылки (не копируйте файлы)
  4. На этом этапе предупреждения должны исчезнуть.
  5. Изнутри Xcode удалите файлы, убедившись, что вы нажали «Удалить» вместо значения по умолчанию «Удалить только ссылку».
  6. Готово.
person askoric    schedule 09.11.2011

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

person Jano    schedule 13.03.2011
comment
К сожалению, я надеялся, что есть более простой способ обойти эту проблему. У меня около 20 файлов, поэтому создавать и удалять их будет довольно сложно. - person Scott; 14.03.2011

У меня также была эта проблема, и, как описал user151215, это связано с папками .svn.

У меня была старая папка .svn, но не в самом проекте, а в родительской папке проектов.

в вызывающей ошибку папке .svn будет файл записей, содержащий ваши недостающие файлы. Таким образом, вы можете использовать Teminal и искать отсутствующую строку имени файла, например. grep -lir BagController.m yourRootDevDir / *

проще, чем включать скрытые файлы в Finder, просто используйте терминал. cd в соответствующий каталог и mv .svn ~ / .Trash

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

person Nick H247    schedule 14.03.2011

Зайдите в соответствующий каталог и запустите:

svn revert fileName
person Shaun McCarthy    schedule 21.03.2012

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

Запустите терминал и перейдите в каталог проекта. (например: cd /Users/Mauro/Src/Pippero-1.2/)

Затем введите следующую команду:

find . -name .svn -exec rm -rf { } \;

команда будет рекурсивно искать файлы (и папку) с именем .svn и удалять их

person Mauro Delrio    schedule 30.05.2011
comment
это не сработало для меня, но сработало, войдя в каждый каталог и удалив отдельные папки .svn. Таких успехов тебе, мой друг! - person gonzobrains; 11.07.2011

Отключение SVN в Xcode предотвращает эти проблемы (при условии, что вы управляете своим репозиторием с помощью другого инструмента SVN). См. Этот вопрос:

Можно ли отключить интеграцию управления версиями в Xcode 4?

Очевидно, это может оказаться непрактичным, если есть другие проекты Xcode, с которыми вы действительно хотите использовать SVN.

person occulus    schedule 28.06.2012

Я использую svn и могу решить эту проблему с помощью

svn delete pathToMissingFile

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

or

svn revert pathToMissingFile

который отменяет изменения в отсутствующем файле, что означает возвращение отсутствующего файла на место.

person Jibeex    schedule 02.10.2012

Все вышеперечисленное не помогло решить ту же проблему, что и я. Проведя поиск, я понял, что проблема была связана с конфликтами SVN.

Я узнал, что были конфликты, используя командную строку:

svn status

Затем нужно было разрешить все конфликтующие файлы.

svn resolved filename1 filename2 ...

После разрешения конфликтов предупреждения исчезли из Xcode

person gfrigon    schedule 09.05.2012

  1. Зафиксируйте и продвигайте свои изменения.
  2. Перезапустите Xcode.
person quemeful    schedule 14.09.2016

Это очень просто,

Xcode -> Preferences -> Source Control -> uncheck Enable Source Control

и не забываем делать cmd+shift+k

person Kavin Kumar Arumugam    schedule 26.12.2016

После сборки нажмите Cmd + 7 и выберите последнее действие сборки. Это немного похоже на старый добрый Xcode? :) введите описание изображения здесь

person knuku    schedule 13.03.2011
comment
Да, это похоже на старый XCode, но это не решает проблему с новым XCode, говоря, что у меня отсутствуют файлы. Мне нравится вид, но похоже, что это просто маскирует проблему с XCode. - person Scott; 14.03.2011

В моем случае

  1. Я просто открываю SvnX.
  2. Все отсутствующие файлы отмечены красным. Выделите и удалите их.
  3. Тогда все предупреждения Xcode исчезли.
person Apoc    schedule 08.05.2012

Ответ Алекса устранил мою проблему с отсутствующими файлами.

У меня была еще одна проблема (хотя она не связана с отсутствующими файлами, я думаю, что это будет лучшая тема)

  1. Мне нужно было скопировать набор изображений в свой проект.
  2. Я просто создал группу (хотя я знаю, что эта группа не сопоставляется с физической папкой) и перетащил изображения в группу (выбрал вариант «Копировать в ..»).
  3. В статусе SVN все они отображаются на отметке «А».
  4. Теперь, когда я вошел в реальную файловую систему, я обнаружил, что все изображения скопированы в корневую папку моего проекта. Поскольку это выглядело не очень хорошо, я создал физическую папку внутри папки изображений в моем проекте и скопировал туда все добавленные изображения.
  5. Затем SVN показал все файлы красным.
  6. Я удалил ссылки на все красные файлы.
  7. С помощью опции «Добавить файл» я добавил изображения из вновь созданной папки.
  8. Теперь SVN не может отображать статус файлов как «A», и я никак не могу их зарегистрировать.
  9. Пробовал много шагов, например, отбрасывать их, добавляя снова из другой папки и т. Д., Но безуспешно.

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

Затем я обновил исходный код и получил вновь созданный каталог внутри моей рабочей копии (хотя он не добавлен в проект).

Затем я скопировал изображения в этот каталог и добавил их в проект с помощью опции «Добавить файл», которая вернула мне статус «A», и я смог проверить файлы.

Просто хотел поделиться этим ... потому что это заняло у меня много времени.

-anoop

person anoop4real    schedule 01.11.2012
comment
В этом случае перейдите в Терминал и в корень вашего проекта. Создайте папку с svn mkdir name_of_the_folder. Перетащите файлы с помощью Finder из папки name_of_the_folder в свой проект (или в папку, чтобы добавить все файлы). Проблема в том, что при создании папки без svn папка mkdir не добавляется в SVN. - person Alex; 09.04.2013

Не удаляйте файл прямо в папке .xcode. Удалите файлы из навигатора проекта xcode. (Щелкните этот файл правой кнопкой мыши и выберите «Переместить в корзину»).

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

person Gowtham R    schedule 29.06.2013

Мне не нужно было ничего делать. Я зафиксировал свой код и поднял его. Выключил XCODE. Вытащил его снова и все просто заработало.

person VBaarathi    schedule 16.09.2016

Обзор:

В моем случае был проект xcode с именем Sample в следующем пути к папке /folder1/folder2.

Внутри /folder1/folder2/Sample/ был .git файл, который и ожидался.

Первопричина:

В родительском каталоге (/folder1) был еще один .git файл, который вызывал проблему. Папки могли быть удалены, оставив после себя файл .git

Решение

rm -rf /folder1/.git

Подсказка

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

person user1046037    schedule 23.09.2016