Xcode 8 - ostrzeżenia o brakujących plikach

127

Od czasu aktualizacji do Xcode 8 przy użyciu Swift 2.3 mam kilka ostrzeżeń o brakujących plikach. Wszystkie są związane z strąkami, których używam.

Brakujące pliki to

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

Podami, które pokazują brakujące pliki, są

  • Królestwo (~ 38 z 43)
  • TextFieldEffects (~ 3 z 43)
  • BEMCheckBox (2 z 43)

Jak rozwiązać ten problem?

Alan
źródło
Czy próbowałeś pod install?
Marc-Alexandre Bérubé
@ Marc-AlexandreBérubé tak, kilka razy próbowałem zainstalować pod. Usunięto folder pod i wykonałem kolejną instalację.
Alan

Odpowiedzi:

298

To tylko błąd Xcode. Jeśli usuniesz plik lub zmienisz jego nazwę bez wykonania zatwierdzenia, Xcode widzi rozbieżność między poprzednim gitzatwierdzeniem a bieżącym stanem rzeczy i zgłasza te ostrzeżenia. Znikają, gdy tylko wykonasz operację, git addktóra obejmuje usunięcie / zmianę nazwy pliku.

matowe
źródło
25
Dodanie plików do index ( git add) wystarczy, nie trzeba ich faktycznie zatwierdzać (bardziej prawdopodobne, że projekt nie jest gotowy do zatwierdzenia ...)
djromero
@djromero Dziękujemy za znalezienie tego! Czy mam dodać to do mojej odpowiedzi?
mat.
@matt pewnie, nie krępuj się
djromero
nowe zatwierdzenie rozwiązało problem.
MatterGoal
34
Dla mnie było to tak proste, jak szybkie wyłączenie, a następnie ponowne włączenie kontroli źródła w preferencjach. Xcode> Pref> Kontrola źródła> odznacz „Włącz kontrolę źródła” .... a następnie włącz ją ponownie. I puf! odszedł!
BennyTheNerd
84

Jeśli nie używasz kontroli źródła xcode, ale jakiegoś innego klienta git (takiego jak drzewo źródłowe lub terminal), możesz wyłączyć kontrolę źródła w Xcode i wtedy ostrzeżenia znikną.

Xcode> Preferencje> Kontrola źródła i odznacz „ Włącz kontrolę źródła

milczi
źródło
Czy to następnie usuwa porównanie side-by-side dla starego zatwierdzenia z XCode? Zakładam, że tak ...
Byron Coetsee,
15

Wypróbowałem wszystkie (i wiele innych), ale żaden z nich nie działał. Po godzinach próbowania różnych poprawek stwierdziłem, że następująca procedura działa.

cd "project directory"
git add .

Będziesz musiał zamknąć XCode i ponownie otworzyć, w przeciwnym razie przyszłe zatwierdzenia mogą się nie powieść.

Mam nadzieję, że to komuś pomoże.

Parrett Apps
źródło
Niesamowite. Mój projekt trochę się bałaganił, aktualizując strąki, a ostrzeżenia stały się zbyt duże ... To naprawiło problem. Dzięki!
Colibri
8

Rozwiązuję problem po prostu w ten sposób:

  1. Dodaj winowajcę do projektu wprowadź opis obrazu tutaj

  2. Usuń odniesienie wprowadź opis obrazu tutaj

Spowoduje to wyczyszczenie wewnętrznego stanu XCode i komunikat zniknie.

hassan karimi
źródło
To rzeczywiście działa. Rozwiązanie @mata zadziałało raz w pewnych okolicznościach, ale mam paskudny plik, który powraca do XCode i jest to jedyny sposób, aby się go pozbyć.
qwerty_so,
7

A może commitw Source Control.

Może być konieczne najpierw wyświetlenie zawartości pakietu "your project name".xcodeproji pokazanie zawartości pakietu, project.xcworkspacea następnie usunięcie xcuserdatafolderu.

Jeśli nadal nie możesz zatwierdzić z powodu Nie można nawiązać komunikacji z aplikacją pomocniczą, w katalogu projektu spróbuj wykonać następujące czynności:

xcrun git config user.name "Your Name"
xcrun git config user.email YourEmailAddress

* Pamiętaj, aby ponownie otworzyć projekt, aby zobaczyć efekt.

Tim
źródło
7

Możesz rozwiązać ten problem, zaznaczając opcję „Dodaj i usuń pliki automatycznie” w X-Code-> Preferencje-> Kontrola źródła

Oto zrzut ekranu Preferencji

Rahul Joshi
źródło
7

Wydaje się, że Xcode 8 często pomija git addusunięte / powiązane pliki. Aby to poprawić, stuknij Commit...w Source Controlmenu Xcode , sprawdź te pliki (po których następuje wykrzyknik!), A następnie zatwierdź zmiany. To powinno usunąć ostrzeżenia.

CodeBrew
źródło
5

Miałem ten problem już kilka razy i w końcu miałem go po wykonaniu brzydkich obejść! Usiadłem i śledziłem go, dopóki nie znalazłem powodu i kiedy zapisano odniesienia!

Jak ktoś już zaproponował, ma to związek z kontrolą wersji, cóż, tak i nie, w niektórych przypadkach na pewno ma to związek z przeszukiwaniem plików bezpośrednio za pomocą wyszukiwarki lub czegokolwiek (ale nie z XCode)

Oto szybkie rozwiązanie, które oszczędza wiele kłopotów i przekleństw!

Usuń ten plik: ./.xcworkspace/xcuserdata/.xcuserdatad/UserInterfaceState.xcuserstate

A błędy znikają!

Patrik Forsberg
źródło
1
Na początku to działało, ale brakujące pliki pojawiły się wkrótce potem.
Hackmodford
4

Miałem ten sam problem. W moim przypadku był katalog .git w katalogu nadrzędnym mojego projektu. Po usunięciu tego nadrzędnego katalogu .git błędy zniknęły.

freytag
źródło
3

W moim przypadku pody zostały wpisane do repozytorium generując kilkaset ostrzeżeń o "brakujących plikach". Naprawiono to, usuwając pody z repozytorium:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch Pods/*' --tag-name-filter cat -- --all
Paweł
źródło
2

Rozwiązałem ten problem, wykonując następujące czynności:

  1. Wyczyść dane pochodne

  2. Odrzuć brakujące pliki podczas zatwierdzania, a następnie wykonaj zatwierdzenie.

  3. Czysta kompilacja

  4. Zdecydowany..

Miłego kodowania… :)

Dimple Shah
źródło
1

Napotkałem ten sam problem po dodaniu niestandardowej komórki CollectionView (CustomCollectionViewCell) w projekcie. Wystąpił ten sam błąd, jak powyżej. Nie ma potrzeby usuwania pliku zamiast tego możemy.

Zmień nazwę Brakujący plik dla mnie to „xCustomCollectionViewCell.xib”.

Teraz błąd zniknął.

Ponownie zmień nazwę tego samego pliku na oryginalną nazwę „CustomCollectionViewCell.xib”

Shrawan
źródło
1

To naprawiło to dla mnie:

git reset HEAD <path-to-deleted-file-that-was-causing-the-Xcode-warning>
Francis
źródło
0

Miałem ten problem na Xcode 9.3

Rozwiązanie, które dla mnie zadziałało: dodaj miejsce w pliku, zapisz, a następnie poczekaj, aż !status zmieni się na Mi usuń miejsce, zapisz.

Niestety, mając prawie 100 plików do przejrzenia, wróciłem do tego posta, a ten komentarz @BennyTheNerd do odpowiedzi pomógł!

Dla mnie było to tak proste, jak szybkie wyłączenie, a następnie ponowne włączenie kontroli źródła w preferencjach. Xcode> Pref> Kontrola źródła> odznacz „Włącz kontrolę źródła” .... a następnie włącz ją ponownie. I puf! odszedł! - BennyTheNerd 16 stycznia 2017 o 7:29

Poza tym miałem całkiem Xcode, a następnie otworzyłem ten sam projekt, a następnie ponownie włączyłem kontrolę źródła za pomocą preferencji.

Mam nadzieję że to pomoże!

Nitin Alabur
źródło