Xcode: problem „brakuje pliku xxx.png w kopii roboczej” w budynku projektu

265

Po usunięciu / dodaniu niektórych plików png do projektu dostaję komunikaty podczas budowania projektu.

„Brak pliku ProjectPath \ aaa \ xxx.png w kopii roboczej.”

Wszystkie te pliki są w projekcie, a aplikacja jest uruchomiona. Te wiadomości są jednak denerwujące. Wyglądał plik .plist, ale nie ma wzmianki o tych plikach. Co powinienem zrobić, aby usunąć te wiadomości?

Iban
źródło
Można skierować stackoverflow.com/questions/39711061/…
Shrawan

Odpowiedzi:

495

Ostrzeżenie zniknie, gdy tylko wprowadzisz zmiany (Xcode 8).

Alexander Wasenin
źródło
2
Odkryłem, że musiałem zatwierdzić zmiany w git po przeniesieniu niektórych plików do innego katalogu.
Chris Livdahl,
@LearnSwift Clean Cmd + Shift + K, usuń ~ / Library / Developer / Xcode / DerivedData / *?
Alexander Vasenin
2
@AlexanderVasenin none
Naucz się
7
Dla mnie wystarczyło inscenizowanie zmian. Dobrze wiedzieć.
charmingToad
13
Jak wspomniałeś, upewniłem się, że zatwierdziłem i popchnąłem moje najnowsze zmiany. Ale zrobienie tego nie usunęło błędów. Więc zrobiłem Xcode> Kontrola źródła> Odrzuć WSZYSTKIE zmiany, i wyczyściło to dla mnie wszystkie błędy.
EdwardM
97

Wydaje się, że ten problem może mieć różne przyczyny, ale często dotyczy oprogramowania do kontroli źródła.

W moim przypadku rozwiązałem go, przechodząc do Git i dodając pliki ponownie. Mam na myśli uruchomienie następującego polecenia:

git add .
nbloqs
źródło
Po zainstalowaniu Xcode 8 i uaktualnieniu kodu do szybkiego 3 skończyłem z ponad 300 problemami, które wymagały poprawek składniowych (ogromny projekt). Zamiast tego przywróciłem kopię zapasową i zaktualizowałem ją do wersji 2.3 ... wszystko poszło dobrze, z wyjątkiem kilku tych „brakujących” wiadomości. To polecenie działało jak urok - wróciłem do pracy!
Dan Ross
To działało dla mnie. Problem zaczął się, gdy usunąłem to, co miałem w kapsułach na rzecz Kartaginy
Sebastian Sastre
1
To też działa dla mnie. Wygląda na to, że plik jest pod kontrolą źródła i git również musi zostać zaktualizowany.
Shardon
po git commit ostrzeżenie zniknęło
carmen_munich
3
Dla innych: musisz znajdować się w folderze głównym swojego projektu Xcode, wykonując polecenie „git add”. polecenie: / MyXcodeProjects / AwesomeApp /
Philip Borges
59

Możesz także wyłączyć kontrolę źródła, usuwając zaznaczenie

Xcode -> Preferencje -> Kontrola źródła -> Włącz kontrolę źródła

jeśli zarządzasz nim za pomocą wiersza polecenia lub innej aplikacji.

emrekyv
źródło
zrobiło to dla mnie, trochę denerwujące, aby zobaczyć to w IDE, powinni albo dobrze obsługiwać kontrolę źródła, albo wcale
samiq
1
Zrobiłem dwie czynności: 1) „odznacz”, 2) „zaznacz” dla Włącz kontrolę źródła. Ostrzeżenia zniknęły.
Viktor
58

W XCode -> SoureControl:

Update+ Refresh Statuszrobił to dla mnie.

coyer
źródło
Myślę, że może to wynikać z obrazów zawierających „@” w nazwie pliku, takich jak konwencja „@ 2x” i „@ 3x”. SVN używa tego symbolu do składni wersji (aby go uniknąć podczas pracy z SVN w wierszu poleceń, wystarczy dodać „@” na końcu, ponieważ ostatnie wystąpienie jest tym, którego używa do próby ustalenia informacji o wersji). Po prostu uruchomienie aktualizacji działało dla mnie. Kiedy dodałem kilka nowych obrazów, faktycznie musiałem ręcznie wybrać „dodaj” w wariantach 2x / 3x w okienku Inspektora plików. Dziwne.
Android3000,
1
To! bardzo ważne. Problem pojawia się również, jeśli zmienisz nazwę folderu zawierającego pliki. Innymi słowy, xcode daje nam ostrzeżenia, ponieważ nie zatwierdziliśmy jeszcze naszego kodu! klaskać klaskać klaskać
Warpzit
4
To zadziałało dla mnie. Musiałem zamknąć Xcode, ponownie otworzyć projekt i uruchomić.
jaytrixz
44

W moim przypadku brakowało pliku w kontrolce źródła.
Aby to naprawić, musiałem odrzucić ten plik (uważaj tylko odrzuć brakujący plik, nie cały projekt):

  1. Xcode-> Kontrola źródła-> zatwierdzanie
  2. Kliknij prawym przyciskiem myszy brakujący plik
  3. Wybierz Odrzuć zmiany
Ronen
źródło
Działa to dla mnie, usunąłem folder DerivedData, a ostrzeżenia dotyczyły plików jako „db.xcindexdb”
tontonCD
1
Po pierwsze, upewniłem się, że zatwierdzam i pcham moje najnowsze zmiany. Potem zrobiłem Xcode> Kontrola źródła> Odrzuć wszystkie zmiany, i wyczyściło to dla mnie wszystkie błędy.
EdwardM
19

Wyłącz kontrolę źródła, wyczyść folder kompilacji ( Alt+Shift+Cmd+K), a następnie ponownie włącz kontrolę źródła.

Xcode -> Preferencje -> Kontrola źródła -> Włącz kontrolę źródła

Jerzy
źródło
1
poprawna odpowiedź ... ale dokładna odpowiedź @emrekyv opublikował 3 miesiące wcześniej ... Podnosi głos
eric
@eric zasugerował, aby wyłączyć kontrolę źródła, pokazałem, jak to zrobić poprawnie.
George
18

W moim przypadku Xcode w jakiś sposób znalazł stare .svnkatalogi, które odwoływały się do brakujących plików. Musiałem udać się do poziomu powyżej mojego folderu projektu, aby znaleźć te pliki .svn. Po usunięciu uruchomiłem ponownie Xcode i wszystko było w porządku.

kubi
źródło
Tak, dzieje się tak, gdy usuwasz coś z projektu znajdującego się pod kontrolą wersji, gdy wciąż jest do niej odwoływana kontrola wersji (w moim przypadku svn). Użycie „aktualizacji svn” do przywrócenia brakujących plików, a następnie usunięcie ich we właściwy sposób przy użyciu „svn delete” sprawiło, że problem zniknął.
ChrisB
12

Miałem podobny problem z garstką plików, które już dawno zostały usunięte z mojego projektu Xcode, gdy jeszcze korzystałem z Xcode 7.

Moje rozwiązanie polegało na:

  1. Twórz pliki o nazwach, na które narzekał Xcode (nie potrzebują żadnych treści)
  2. Dodaj pliki do mojego projektu Xcode (w Xcode kliknij prawym przyciskiem myszy mój główny katalog projektu, kliknij Dodaj pliki do mojej_projektu_nazwa i wybierz właśnie utworzone pliki
  3. Wybierz nowo dodane pliki i usuń je - wybierz przenieś do kosza.

Pozbyłem się ostrzeżeń dla mnie.

Gabrielle Earnshaw
źródło
To też działało dla mnie. Miałem problem po skopiowaniu istniejącego projektu, aby utworzyć pochodną, ​​ale z ograniczoną funkcjonalnością ⇒ mniej plików źródłowych.
Stefan
9

Aby dodać do odpowiedzi Aleksandra Wasenina ...

Najpierw zobowiązałem się i wprowadziłem zmiany

Menu główne Xcode> Kontrola źródła> Zatwierdź

Następnie odrzuciłem wszystkie zmiany, aby pozbyć się błędów

Menu główne Xcode> Kontrola źródła> Odrzuć wszystkie zmiany

Następnie zniknęły błędy informujące, że „kopia xxx.png nie ma w kopii roboczej”.

EdwardM
źródło
Co jeśli projekt nie używa kontroli wersji lub systemu kontroli wersji nieobsługiwanego przez XCode.
Martin
8

Dzieje się tak, gdy usuwasz plik na Xcode, ale nie powiedziałeś o tym serwerowi svn.

Przejdź do narzędzia wiersza poleceń i bezpośrednio usuń plik.

svn delete missingFile.m 

i popełnij to

svn commit -m "Deleting file"

zwróć uwagę, że jeśli usuniesz folder .svn, ostrzeżenie zniknie, ale utracisz komunikację z serwerem svn.

Kang Byul
źródło
5

Rozpracowałem to.

po prostu otwórz narzędzie SVN innej firmy, znajdź brakujące pliki, przywróć; to wszystko.

traximus
źródło
5

Miałem ten sam problem i rozwiązałem go, dodając git. Otwórz narzędzie wiersza poleceń

cd "project folder path"
git add .

Później uruchom ponownie projekt Xcode i ponownie otwórz projekt.

Ugur Atci
źródło
Co jeśli nie używasz git?
Martin
4

Pokaż na cel-> fazy budowy -> skopiuj zasoby pakietu. i czyste polecenie kompilacji folderu + shift + alt + k

BHASKAR
źródło
3
Dzięki, ale nie ma ich w fazie kompilacji, a czyszczenie folderu kompilacji też nie pomaga.
Iban
4

Musiałem ręcznie przejść do terminalu i usunąć pliki za pomocą, git rm ProjectPath\aaa\xxx.pnga następnie zatwierdzić. Potem wszystko działało dobrze.

yesthisisjoe
źródło
3

Dostałem to dla każdego projektu po przejściu na XCode 8. To rozwiązało:

Przy wciśniętym klawiszu Opcja, Produkt (w menu tytułowym) -> Wyczyść folder budowania.

TomV
źródło
2

W moim przypadku miałem złe dane z moich starych projektów w symulatorze. Rozwiązane przez zresetowanie zawartości i ustawień w symulatorze:

Symulator -> Resetuj zawartość i ustawienia ...

Kanał
źródło
1

Dla mnie działało:

Ponieważ nie używam Gita i nigdy go nie używałem, stworzyłem nowy projekt (XCode 8, nie widziałem zwykłego „korzystania z Gita” ani znacznika wyboru). Następnie tępo usunąłem wszystkie pliki w tym nowym projekcie; poszedłem do starego pomieszanego projektu, skopiowałem wszystko z folderu projektu, wróciłem do nowo utworzonego projektu, wkleiłem stare rzeczy, otworzyłem to - wszystkie ostrzeżenia o plikach, które nie istniały od miesięcy, zniknęły. Skrzyżowane palce.

TommyTheCat
źródło
1

Miałem ten sam problem i rozwiązałem go, po prostu przeciągając określone pliki z wyszukiwarki do nawigatora projektu (upewniając się, że w oknie dialogowym wybrano opcję „skopiuj pliki”) i zatwierdzając pliki.

użytkownik2698617
źródło
1

Ostrzeżenia te nie są ostrzeżeniami kompilacyjnymi, dotyczą twojego repozytorium SVN.

To prawda, że ​​pokazane katalogi już nie istnieją, CocoaPods przechowuje Pods/Headers/{Private,Public}teraz nagłówki . Musisz zaktualizować kopię roboczą, aby odzwierciedlić te zmiany.

Mutawe
źródło
Nie używam kontroli wersji w XCode, a Sill ma problem.
Martin
1

W moim przypadku przeciągnąłem i upuściłem kilka plików w oknie projektu Xcode, aby je dodać. Zrobił kopie w moim katalogu źródłowym, ale nie umieścił ich tam, gdzie chciałem, aby jechał (umieścił je w katalogu głównym mojego katalogu, chciałem je w podkatalogu). Nie zastanawiając się, po prostu złapałem je w Finderze i przeniosłem do katalogu, w którym chciałem. Po powrocie do okna projektu oczywiście nie mogłem ich znaleźć, więc usunąłem je w oknie i dodałem ponownie. Po kompilacji zacząłem otrzymywać te błędy.

Myślałem, jak niektórzy wspominają powyżej, że to był problem z gitem, ale kiedy uruchomiłem „git ls-tree --full-tree -r HEAD”, w ogóle nie widziałem plików?

W każdym razie, aby to naprawić, użyłem polecenia menu „Dodaj plik ...”, aby dodać każdy plik do domyślnej lokalizacji, wykonać czystą kompilację, a następnie usunąć je z okna projektu (używając Przenieś do kosza) i pozbył się wszystkich błędów.

KevinR
źródło
1

Miałem ostrzeżenia, a także nie mogłem dokonywać zmian w XCode (używając svn). Wszystko, co musiałem zrobić, to zrestartować XCode i problem zniknął.

Hugh Jeffner
źródło
1

Działa to dla mnie: Xcode -> („opcja + kliknięcie”) Produkt -> Wyczyść folder kompilacji ...
Następnie uruchom ponownie xCode

Mykyta Savchuk
źródło
0

W moim przypadku był to problem z git i systemem plików bez rozróżniania wielkości liter.

Nieumyślnie przesłałem ten sam plik dwukrotnie, używając ścieżek plików, które różniły się tylko w przypadku:

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

Xcode narzekał na jeden z brakujących plików.

Naprawiono przez usunięcie szkodliwych plików i ponowne dodanie.

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
Darren
źródło
0

Jest to zdecydowanie związane z kontrolą źródła. Zmieniłem nazwę i przeniosłem kilka niezaangażowanych plików plist i dostałem ten błąd. Używam svn. Byłem w stanie to naprawić Source Control - Commit, usuwając stare pliki odniesienia.

Hahnemann
źródło
Mam problem i nie używam kontroli wersji, o której XCode jest świadomy. Cała kontrola wersji odbywa się poza XCode.
Martin