Xcode: випуску «файл xxx.png відсутній у робочій копії» під час створення проекту


265

Після видалення / додавання в проект деяких png-файлів я отримав повідомлення під час створення проекту.

"у робочій копії відсутній файл ProjectPath \ aaa \ xxx.png."

Усі ці файли є в проекті, і програма працює. Однак ці повідомлення дратують. Подивився файл .plist, але про ці файли немає жодної згадки. Що мені робити, щоб видалити ці повідомлення?


Можна послатися stackoverflow.com/questions/39711061 / ...
Shrawan

Відповіді:


495

Попередження зникне, як тільки ви внесете зміни (Xcode 8).


2
Виявив, що я просто повинен був здійснити зміни під git після переміщення деяких файлів в інший каталог.
Кріс Лівдал

@LearnSwift Clean Cmd + Shift + K, видалити ~ / Бібліотека / Розробник / Xcode / DerivedData / *?
Олександр Васенін

2
@AlexanderVasenin ні
Learn Swift

7
Для мене було достатньо просто постановки змін. Добре знати.
чарівна Рука

13
Як ви вже згадували, я переконався, що я зобов’язався виконати свої останні зміни. Але саме це не усунуло помилок. Тоді я зробив Xcode> Управління джерелами> Відхилити ВСІ зміни, і він очистив усі помилки для мене.
EdwardM

97

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

У моєму випадку я вирішив це, перейшовши на Git і знову додавши файли. Я маю на увазі виконання наступної команди:

git add .

Після встановлення Xcode 8 та оновлення коду до швидкого 3 я закінчив понад 300 проблем, які потребували виправлення синтаксису (масштабний проект). Натомість я відновив із резервної копії та оновив до швидкого 2.3 ... все пройшло добре, за винятком купу цих "відсутніх" повідомлень. Ця команда спрацювала як шарм - я знову в бізнесі!
Ден Росс

Це те, що працювало для мене. Проблема розпочалася, коли я вилучив те, що раніше мав у Підсах на користь Карфагена
Себастьян Састре

1
Це працює і для мене. Здається, що файл знаходиться під контролем джерела, і git також повинен оновлюватися.
Шардон

після вчинення git попередження зникло
carmen_munich

3
Для інших: ви повинні знаходитись у кореневій папці вашого проекту Xcode, виконуючи "git add". команда: / MyXcodeProjects / AwesomeApp /
Філіп Борхес

59

Ви також можете відключити керування джерелом, знявши прапорець

Xcode -> Налаштування -> Control Source -> Увімкнути контроль над джерелами

якщо ви керуєте ним за допомогою командного рядка або будь-якого іншого додатка.


це зробило це для мене, якось дратує бачити це в IDE, вони повинні або добре підтримувати контроль над джерелами, або взагалі їх немає
samiq

1
Я здійснив дві дії: 1) "зняти прапорець", 2) "перевірити" для включення управління джерелом. Попередження зникло.
Віктор

58

У XCode -> SoureControl:

Update+ Refresh Statusзробив це для мене.


Я думаю, що це може бути пов’язано із зображеннями, що мають "@" у назві файлу, наприклад, "@ 2x" та "@ 3x". SVN використовує цей символ для синтаксису ревізії (щоб уникнути його під час роботи зі SVN в командному рядку, ви просто додаєте "@" наприкінці, оскільки останнє виникнення - це те, яке він використовує, щоб спробувати визначити інформацію про ревізію). Просто запуск оновлення працював для мене. Коли я додав нові зображення, мені фактично довелося вручну вибрати "додати" на варіантах 2x / 3x на панелі File Inspector. Дивно.
Android3000

1
Це! так важливо. Проблема також виникає, якщо ви перейменовуєте папку, що містить файли. Іншими словами, xcode дає нам попередження, оскільки ми ще не ввели наш код! хлопати хлопати хлопати
Warpzit

4
Це працювало для мене. Мені довелося закрити Xcode і знову відкрити проект і запустити.
jaytrixz

44

У моєму випадку файл відсутній у керуванні джерелом.
Щоб виправити, мені довелося відкинути цей файл (будьте обережні, лише відкиньте відсутній файл не весь ваш проект):

  1. Xcode-> Control Source-> commit
  2. Клацніть правою кнопкою миші файл, що відсутній
  3. Виберіть Скасувати зміни

Для мене це працює, я видалив папку DerivedData, і попередження були для файлів як "db.xcindexdb"
tontonCD

1
По-перше, я переконався, що я зобов’язався здійснити та натиснути свої останні зміни. Тоді я зробив Xcode> Control Source> Відхилити всі зміни, і він очистив усі помилки для мене.
EdwardM

19

Вимкнути контроль над джерелами, очистити папку збірки ( Alt+Shift+Cmd+K), а потім знову ввімкнути контроль над джерелами.

Xcode -> Налаштування -> Control Source -> Увімкнути контроль над джерелами


1
правильна відповідь ... але точну відповідь @emrekyv опублікував 3 місяці попереднього ... Він отримує голосування
eric

@eric він запропонував просто відключити управління джерелом, я показав, як змусити його правильно працювати.
Джордж

18

У моєму випадку Xcode якимось чином знайшов старі .svnкаталоги, які посилалися на відсутні файли. Мені довелося піднятися на рівень над папкою мого проекту, щоб знайти ці файли .svn. Після видалення я перезапустив Xcode і все було добре.


Так, це відбувається, коли ви видаляєте щось із проекту під контролем версій, коли на нього все ще посилається контроль версій (у моєму випадку svn). Використання "svn update" для відновлення відсутніх файлів, а потім видалення їх належним чином, використовуючи "svn delete", змусило цю проблему усунутись для мене.
ChrisB

12

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

Моїм рішенням було:

  1. Створіть файли з іменами, на які скаржився Xcode (їм не потрібен вміст)
  2. Додайте файли до мого проекту Xcode (у Xcode клацніть правою кнопкою миші на моєму головному каталозі проекту, натисніть Додати файли до my_project_name та виберіть файли, які були щойно створені
  3. Виберіть щойно додані файли та видаліть їх - виберіть переміщення до кошика.

Це позбулося попереджень для мене.


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

9

Щоб додати відповідь Олександра Васеніна ...

Спершу я здійснив і підштовхнув свої зміни

Головне меню Xcode> Контроль джерела> Введення даних

Тоді я відкинув усі зміни, щоб позбутися помилок

Головне меню Xcode> Керування джерелами > Відмінити всі зміни

Після цього помилки із зазначенням, що "файл xxx.png відсутній у робочій копії", зникли.


Що робити, якщо проект не використовує управління версіями або систему контролю версій, не підтримується XCode.
Мартін

8

Це трапляється, коли ви видаляєте файл на Xcode, але не повідомляли про це сервер svn.

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

svn delete missingFile.m 

і вчинити це

svn commit -m "Deleting file"

зауважте, що якщо ви видалите папку .svn, попередження зникне, але ви втратите зв’язок із сервером svn.


5

Я це розробив.

просто відкрийте сторонній інструмент SVN, знайдіть пропущені файли, Відновіть; це все.


5

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

cd "project folder path"
git add .

Пізніше перезапустіть проект Xcode та відкрийте проект ще раз.


Що робити, якщо ви не використовуєте git?
Мартін

4

Показати на цільових-> фазах збірки -> копіювати ресурси ресурсу. і очистити команду збірки папок + shift + alt + k


3
Дякую, але їх немає у фазах збирання, і чистка папки збірки теж не допомагає.
Іван

4

Мені довелося вручну зайти в термінал і видалити файли, git rm ProjectPath\aaa\xxx.pngа потім зробити фіксацію. Після цього все спрацювало нормально.


3

Отримав це для кожного проекту після переходу на XCode 8. Це вирішило його:

Після натискання клавіші опції, Продукт (у заголовному меню) -> Очистити папку збірки.


2

У моєму випадку я мав неправильні дані зі своїх старих проектів у тренажері. Вирішено шляхом скидання вмісту та налаштувань у тренажері:

Симулятор -> Скидання вмісту та налаштувань ...


1

Для мене працювали наступні:

Оскільки я не використовую і ніколи не використовую Git, я створив новий проект (XCode 8, я не міг побачити звичайне "використання Git" або, проте, галочка була позначена). Потім я прямо видалив усі файли цього нового проекту; перейшов до старого заплутаного проекту, скопіював усе в папку проектів, повернувся до новоствореного проекту, вставив старий матеріал, відкрив це - всі попередження про файли, які не існували місяцями, уже зникли. Схрещені пальці.


1

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


1

Ці застереження не є побудовими попередженнями, вони стосуються вашого сховища SVN.

Правильно, що показані каталоги більше не існують, CocoaPods зберігає заголовки Pods/Headers/{Private,Public}зараз. Вам потрібно оновити свою робочу копію, щоб відобразити ці зміни.


Я не використовую контроль версій у XCode, і підвіконня отримало проблему.
Мартін

1

У моєму випадку я перетягнув декілька файлів у вікно мого проекту Xcode, щоб додати їх. Він робив копії у моєму вихідному каталозі, але не ставив їх там, де я хотів, щоб вони перейшли (він поставив їх у корінь мого каталогу, я хотів їх у підкаталозі). Не замислюючись, я просто схопив їх у Finder і перемістив їх до каталогу, в якому я їх хотів. Після повернення у вікно проекту він, звичайно, не зміг їх знайти, тому я видалив їх у вікні та знову додав їх. Після складання я почав отримувати ці помилки.

Я вважав, як дехто згадує вище, що це проблема git, але коли я запускав "git ls-tree --full-tree -r HEAD", я взагалі не бачив файли ??

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


1

Я мав попередження, а також не міг вносити зміни під XCode (використовуючи svn). Все, що я повинен був зробити, це перезапустити XCode і проблема усунулася.


1

Для мене це працює: Xcode -> ("опція + клік") Продукт -> Очистити папку збірки ...
Чому перезавантажте xCode


0

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

Я ненароком подав один і той же файл двічі, використовуючи шляхи до файлів, які відрізнялися лише у випадку:

MyProject/Resources/foo.png
MyProject/resources/foo.png

Xcode скаржився на один із файлів, які відсутні.

Виправлено видаленням файлів, які порушують правопорушення, та повторним додаванням.

cd MyProject
mv Resources/foo.png /tmp
git rm Resources/foo.png
git rm resources/foo.png
git commit
mv /tmp/foo.png Resources
git add Resources/foo.png
git commit

0

Це, безумовно, пов'язано з контролем джерел. Я перейменував і перемістив пару невідомих файлів плістів і отримав цю помилку. Я використовую svn. Я зміг виправити це за Source Control - Commitдопомогою видалення старих посилань.


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