Повідомлення про відсутність файлів з'являються після оновлення до Xcode 4


166

Нещодавно я перейшов на Xcode 4 (що є чудовим оновленням), але зараз я отримую попередження, яких раніше не отримував. Я переглянув форуми та інші повідомлення SO, але не натрапив, як це виправити.

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

Я оглянувся і не знайшов, як я можу сказати Xcode, що цих файлів немає, перестань давати мені попередження. Ось скріншот, який я отримую в Xcode4, але ніколи не потрапляв у Xcode 3.

Відсутнє попередження про файл Xcode 4


Якби я був ти, я завжди б імпортував свої файли у свій проект, а не просто посилався на них на своєму диску. Це дійсно позбавляє вас від головних болів, якщо ви переміщуєте файли пізніше.
sudo rm -rf

Відповіді:


297

Ці рішення занадто важкі. Проблема полягає в тому, що ви видалили проект з файлової системи, але SVN все ще вважає, що вони там є. Проект від'єднання від SVN буде працювати, те ж саме для видалення .svn папок, АЛЕ, що збирається знищити ваше сховище!

Набагато простіше відкрити консоль, перейти до своєї папки ("cd / pathToYourFolder") і ввести таку команду:

svn delete nameOfMissingFile

Якщо ім'я відсутнього файлу містить символ @ (наприклад: зображення, характерне для сітківки), переконайтеся, що ім'я файлу закінчується символом @:

svn delete nameOfMissingFile@2x.png@

Для сховищ GIT:

git rm nameOfMissingFile


20
У мене була та сама проблема, і я її вирішив через Термінал, використовуючи:svn rm --force nameOfMissingFile
ReachWest

1
Це краща відповідь, ніж той, який позначений як правильний. Видалення папок SVN з проекту під контролем SVN може викликати біль. Найкраще використовувати SVN для вирішення проблеми. Я пішов за цією відповіддю, щоб вирішити власну проблему, однак у мене була розкіш Корнерстона. Але інакше круто. Дякую :)
jowie

1
Це, здається, не працює для мене. Я би додав файл назад, а потім видалив його, але те ж попередження все ще з’являється у збірці. Я навіть намагався додати файли назад до проекту, а потім видалити їх. Ще та сама проблема.
Єній

10
Це працювало для мене, але я спочатку повинен був створити там фіктивний файл, перш ніж я міг видалити, якщо використовувати svn. Тож вам доведеться торкнутися nameOfMissingFile, а потім svn видалити nameOfMissingFile --force
Maciej Swic

9
Я також повинен був кинути і вбити xcode для усунення проблеми.
Twilite

55

У XCode 4.2. + (Можливо, у 4+) ви можете уникнути ручної роботи та командного рядка:

  1. Виберіть проект Навігатор проекту (Команда - 1)
  2. Виберіть меню Файл - Контроль джерела - Звернення
  3. На лівій панелі, зверху у вас є три піктограми, виберіть середню - Вигляд файлу
  4. Ви побачите список усіх відсутніх файлів
  5. Виберіть їх усіх і клацніть правою кнопкою миші - Скасувати зміни. Це відновить усі видалені файли з SVN-сервера та розмістить їх у вашій локальній папці SVN
  6. Перетягніть ці файли в проект XCode (виберіть Сортувати дату, змінену в Finder, щоб легко їх знайти)
  7. Видаліть ці файли належним чином через XCode (виберіть файли та оберіть правою кнопкою миші Видалити)
  8. Здійснити проект

І це все :)

Всі ці неприємні попередження пропали!

Додатково для Xcode 6+: Після вибору перегляду файлів «середній значок» - ви можете натиснути прапорець ліворуч, і це позначить їх як видалені для SVN під час наступного виконання комісії!


1
Потрібний був лише до кроку 5. Фактично у мене файли у SVN не було.
Даррен Рілі

Я відремонтував проект, який вплинув на інший проект cos деякого спільного коду, і XCode скаржився на відсутні файли, пов’язані зі SVN. Ми зайняли деякий час, щоб зрозуміти, що це проблема SVN, після того, як вручну проскакували джерело проекту xml і нічого не знайшли.
данфорд

50

У Xcode5 та Xcode6 нижче кроки для мене працювали

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

тоді

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


На Xcode 8.3.2 це спрацювало близько десяти хвилин, а потім усі попередження повернулися :(
Боб

27

Це має щось спільне з .svn прихованими папками у вашому проекті.

Я вирішив це питання, від'єднавши проект від svn.

а. Відкрийте термінал і введіть наступні команди:

defaults write com.apple.finder AppleShowAllFiles TRUE


killall Finder

Це дозволить переглядати папки .svn всередині вашого проекту

б. Видаліть кожну папку .svn у папках / підпапках проекту

c. Повторно увімкніть приховані файли:

defaults write com.apple.finder AppleShowAllFiles FALSE

killall Finder

г. Тепер ваш проект відірваний від svn, і ви більше не отримуєте проблем з побудовою.

е. Повторно додайте свій проект до svn чи будь-чого іншого.

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


3
Не дуже гарна ідея обходити возитися зі скритими папками та файлами SVN, ви могли опинитися в заплутаному SVS-файні. Найкраще використовувати команду видалення svn, щоб виправити відсутні файли.
jowie

Це шлях, який я насправді пройшов. Так, він видаляє всю збережену інформацію SVN, але це насправді було щось, що хтось інший вклав у конкретний проект, який я не хотів зберігати. Я хотів почати свіжий і не піклувався про підтримку конкретної версії.
Скотт

Я просто "знайду killall", перезапустивши його. Зараз проблеми вже немає. Спасибі
JHHoang

9

Це працювало для мене:

File-> Source Control->Hide Working Copy Status

тоді

File-> Source Control->Show Working Copy Status


6

Я вирішив це наступним чином:

  1. Перевірте шлях до відсутнього файлу.
  2. Створіть відсутні файли у відповідних місцях у каталозі проекту
  3. Додайте їх до свого проекту за допомогою "Додати файли до" проекту "" та створіть лише посилання (не копіюйте файли)
  4. У цей момент попередження повинні зникнути.
  5. Зсередини Xcode видаліть файли, переконуючись, що ви натискаєте "Видалити" замість типового "Видалити лише посилання"
  6. Ви закінчили.

4

У мене з'явилася помилка, і я не знайшов іншого способу її вирішити, крім створення порожнього файлу на цій позиції та видалення. Це трапилося з файлами, які я видалив з проекту, і чистка, створення, видалення вручну також не працювали в каталозі Отримані дані. Я вважаю, що це помилка, і що це може бути дуже боляче, якщо це трапиться з більш ніж декількома файлами.


Сумно, сподівався, що існує простіший спосіб вирішити це питання. У мене є близько 20 файлів, тому створити потім видалити буде неприємно.
Скотт

4

У мене також була ця проблема, і як user151215 описав її, це через папки .svn.

У мене була стара папка .svn не в самому проекті, а в батьківській папці проектів.

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

простіше, ніж увімкнення прихованих файлів у пошуку, просто скористайтеся терміналом. cd у відповідний каталог та mv .svn ~ / .Trash

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



3

Я використовував такий спосіб вирішення проблеми:

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

Потім введіть таку команду:

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

команда буде рекурсивно шукати файли (і папку), що називаються .svn, і видаляти їх


це не спрацювало для мене, але ввійшовши у кожен каталог та видаливши окремі папки .svn, це було. такі великі злети для тебе, мій чоловіче!
gonzobrains

3

Вимкнення SVN в Xcode запобігає цим проблемам (якщо ви керуєте своїм сховищем за допомогою іншого інструменту SVN). Дивіться це запитання:

Чи можете ви відключити інтеграцію контролю версій у Xcode 4?

Очевидно, що це може бути непрактичним , якщо є й інші проекти Xcode ви дійсно хочете використовувати SVN с.


2

Я використовую svn і мені вдається вирішити цю проблему

svn delete pathToMissingFile

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

або

svn revert pathToMissingFile

який відкине зміни у файлі, що відсутній, що означає повернення відсутнього файлу туди, де він був.


1

Усе вищесказане не спрацювало з тим самим питанням, яке я мав. Здійснивши деякий пошук, я зрозумів, що питання, яке було у мене, пов'язане з конфліктами SVN.

Я з’ясував, що виникли конфлікти за допомогою командного рядка:

svn status

Тоді всі конфліктні файли довелося вирішити

svn resolved filename1 filename2 ...

Як тільки конфлікти були вирішені, попередження пропали з Xcode




0

Натисніть Cmd + 7 після складання та виберіть останню дію збірки. Це трохи схоже на старий добрий Xcode? :) введіть тут опис зображення


Так, це схоже на старий XCode, але це не вирішує проблеми з новим XCode, кажучи, що у мене відсутні файли. Мені подобається думка, але це здається, що це просто маскування проблеми з XCode.
Скотт

0

У моєму випадку

  1. Я просто відкриваю SvnX.
  2. Усі відсутні файли позначені червоним кольором. Виберіть та видаліть їх.
  3. Тоді всі попередження Xcode пішли.

0

Відповідь Алекса виправила мою проблему відсутніх файлів.

У мене була ще одна проблема (хоча вона не пов’язана з відсутніми файлами, я вважаю, що це буде кращою темою)

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

Я виправив це, перейшовши безпосередньо в сховище, створивши новий каталог під зображеннями, щоб фізична папка тепер знаходилася на сервері SVN

Потім я взяв оновлення джерела та отримав щойно створений каталог всередині своєї робочої копії (хоча він не доданий до проекту).

Потім я скопіював зображення в цей каталог і додав їх до проекту за допомогою параметра "Додати файл", який повернув мені статус "А", і я зміг перевірити файли.

Просто хотів поділитися цим ..... тому, що у мене пройшло багато часу.

-anoop


У цьому випадку перейдіть до терміналу та до кореня свого проекту. Створіть папку зі "svn mkdir name_of_the_folder". Перетягуйте файли за допомогою Finder із папки name_of_the_folder до свого проекту (або папки, щоб додати всі файли). Проблема полягає в тому, що при створенні папки без папки "svn mkdir" не додається до SVN.
Олексій

0

Не видаляйте файл безпосередньо у папці .xcode. Видаліть файли з навігатора проектів xcode. (Клацніть правою кнопкою миші на цей файл і виберіть переміщення в кошик).

Тепер, щоб очистити цю проблему, додайте ті самі файли в одному місці. І видаліть з навігатора проекту.


0

Мені нічого не потрібно було робити. Я вчинив свій код і підсунув його. Вимкнено XCODE. Знищив його знову, і все просто спрацювало.


0

Огляд:

У моєму випадку був проект xcode, який викликався Sampleу наступному шляху папки /folder1/folder2.

.gitВсередині був файл, /folder1/folder2/Sample/який очікується.

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

У .gitбатьківському каталозі ( /folder1) був ще один файл, що викликав проблему. Папки, можливо, були видалені, залишаючи .gitфайл

Рішення

rm -rf /folder1/.git

Підказки

Якщо переміщення вашого проекту на зовсім нове місце вирішує проблему, коли .gitв батьківських каталогах не було файлу вгору за ієрархією, то це зрозуміло, що вищевказане рішення може спрацювати.

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