Problemy po aktualizacji do Xcode 10: Nie można znaleźć pliku wejściowego kompilacji

108

Uaktualniłem mój Xcode SDK do wersji 10 zeszłej nocy, a potem stwierdziłem, że nie mogę zbudować.

Otrzymuję ten błąd:

Nie można znaleźć pliku wejściowego kompilacji: '/Users/call01/Library/Developer/Xcode/DerivedData/Comp-Lite-Apps-gytvmossqptokeafrddvvmnlzadk/Build/Products/Debug-iphoneos/SG11.app/SG11

która nie istniała przed moją aktualizacją i kusi mnie, aby wrócić, ale chciałbym pozostać przy wersji 10, jeśli uda mi się rozwiązać ten problem.

user616076
źródło

Odpowiedzi:

136

Spróbuj przełączyć się z powrotem do Legacy Build System( File > Project Settings > Workspace Settings > Legacy Build System)

schmidt9
źródło
2
Miły. Ale wciąż się zastanawiam, co będzie później? Musimy naprawić nasz projekt, ale jak?
Teddy
1
@Teddy Nie znalazłem jeszcze rozwiązania, nadal używam tego obejścia
schmidt9
2
@ schmidt9 hats off, bardzo dziękuję, że ratujesz życie. po drugie, nie mogę uwierzyć, że ten nowy system kompilacji był problemem. Walczę z tym od dni. po aktualizacji do iOS 12 i XCode 10 automatyczne podpisywanie zostało zepsute. Próbowałem wszystkiego, a nawet cofnąłem i odtworzyłem wszystkie certyfikaty. i profile. podpisywanie zostało naprawione, ale profil informacyjny był zawsze BRAK. MOGĘ ręcznie podpisać aplikację i zadziałała, ale wtedy w opublikowanej aplikacji brakowało kontenera iCloud i innych uprawnień. w każdym razie rozwiązałem mój problem. dobry Boże, jak jabłko frustruje mnie przy każdej aktualizacji. Twoje zdrowie!
Nexus
To rozwiązało mój problem z automatycznym podpisywaniem i profilowaniem. ale nadal mam problem z kontenerami iCloud. kiedy instaluję aplikację bezpośrednio na telefonie, działa dobrze. Mam kontener iCloud i używam dokumentów iCloud do załączania plików z magazynu iCloud. ale kiedy udostępniam aplikację do TestFlight, to nie działa. zawiedzie po cichu, jakby kontener iCloud nie był nawet obecny w profilu aplikacji rozproszonej. niesamowicie frustrujące.
Nexus
1
@Nexus ten problem z nowym systemem kompilacji utrzymuje się, odkąd Apple go uruchomił (xcode 8 lub 9). Przepraszamy, nie zajmowałem się kontenerami iCloud, nie mogę powiedzieć, w czym może być problem
schmidt9
95

W przypadku plików Swift lub plików należących do projektu, takich jak:

Build input file cannot be found: PATH/TO/FILE/FILE.swift

Ten problem może wystąpić, gdy pliki lub foldery zostały usunięte lub przeniesione w projekcie.

Naprawić to:

  1. Przejdź do nawigatora projektów, wybierz swój projekt

  2. Wybierz Build Phaseskartę

  3. W Compile Sourcessekcji poszukaj plików, na które skarży się Xcode

  4. Zauważ, że pliki mają złą ścieżkę i usuń je, klikając ikonę z minusem

  5. Ponownie dodaj plik (i), klikając ikonę plusa i wyszukaj w projekcie.

  6. Produkt> Clean Build Folder

  7. Budować

Zazwyczaj te brakujące pliki znajdują się w Recovered Referencesfolderze Xcode w drzewie projektu (poszukaj paska wyszukiwania w lewym dolnym rogu Xcode i wyszukaj swój narzekający plik):

Usunięcie ich z tego folderu może również rozwiązać błąd.

Anthony R.
źródło
1
Dziękuję Ci! Mieliśmy odniesienia do usuniętych plików. Samo usunięcie tych odniesień rozwiązało problem
Jason
Czasami, gdy zmieniam nazwę z poziomu XCode, plik w „Finderze” nadal ma starą nazwę. Znajdź plik w „Finderze” i zmień jego nazwę na nową.
Tony
60

Dla mnie w Xcode 10 to rozwiązanie zadziałało jak urok. Po prostu przejdź do folderu Odzyskane odniesienia, usuń wszystkie pliki w kolorze czerwonym i dodaj je ponownie z odpowiednim odniesieniem.

wprowadź opis obrazu tutaj

Krishna Thakur
źródło
10
Nie mogę znaleźć „Odzyskanych referencji” w moim projekcie
david m lee
4
Co masz na myśli, mówiąc „dodaj go ponownie z odpowiednim odniesieniem” po usunięciu czerwonych plików?
PrimeTimeTran
@PrimeTimeTran Chodziło mi o to, że możesz ponownie dodać te odniesienia do plików w swoim projekcie, przeciągając i upuszczając lub kopiując wklej. Podobnie jak dodanie nowego pliku w projekcie.
Krishna Thakur
3
@davidmlee Myślę, że to, co ten gość ma na myśli, innymi słowy, to: „otwórz wszystkie swoje foldery w projekcie, usuń czerwone rzeczy i dodaj je ponownie”. Nie musi istnieć folder odzyskanych odniesień.
bearacuda13
17

To zadziałało dla mnie w Xcode 10:

  • Kliknij ikonę / nazwę projektu w projekcie Xcode
  • Przejdź do zakładki Ogólne
  • Kliknij [Wybierz plik info.plist] w sekcji Tożsamość
  • Wybierz plik info.Plist
  • Sprawdź zakładkę Info, aby zobaczyć, czy info.plist zostało pomyślnie załadowane
  • Buduj i uruchamiaj
Mile Dev
źródło
16

Zabawne, zamknięcie Xcode i ponowne otwarcie może też wystarczyć.

danielhadar
źródło
Usunąłem również dane pochodne, ale samo zamknięcie / ponowne otwarcie mogło wystarczyć.
Adam Johns
Myślałem, że to sposób naprawiania rzeczy w Visual Studio ... ale zadziałał dla mnie.
SEG.Veenstra
14

Powyższe rozwiązanie ostatecznie działa dla mnie; Jednak muszę wykonać kilka dodatkowych czynności, aby ostatecznie skompilować się pomyślnie. (Te dodatkowe kroki były wymagane nawet w Xcode 9.)

  1. Xcode: Plik -> Ustawienia obszaru roboczego -> Buduj system: Starszy system kompilacji
  2. Xcode: Produkt -> Wyczyść
  3. Obróć, aby skompilować za pomocą różnych typów emulatorów, takich jak „iPhone 8”, „iPhone 8 Plus” itp. (Mogą one zawieść lub nie).
  4. Ostatecznie skompiluj na „Generic iOS Device”
david m lee
źródło
Musiałem przejść przez niektóre z tych kroków, aby to też działało.
Liwen Zhao
13

Po prostu sprawdź ścieżkę do pliku .plist w ustawieniach kompilacji swojego celu

wprowadź opis obrazu tutaj

Aleksander Tichonow
źródło
Tak - przeniosłem plist do osobnego folderu. Myślę, że kiedyś foldery były wirtualne, a teraz są prawdziwe (stary niebieski / żółty folder). Tak czy inaczej, twoja odpowiedź była trafna :-)
Peter
10

Rozwiązałem ten problem w ten sposób: przejdź do faz budowy swojego projektu (kliknij ikonę projektu u góry, a następnie kliknij Fazy budowy). Wyszukaj tam swój plik. Jeśli tam jest (będzie wyszarzony), usuń go. Następnie wyczyść (shift + alt + command + k) i uruchom! Mam nadzieję, że to pomoże.

Anastasiia Staiko
źródło
9

Jeśli błąd mówi, że nie może znaleźć Info.plist i szuka złej ścieżki , wykonaj następujące czynności:

  1. Wybierz swój projekt w nawigatorze, a następnie wybierz cel
  2. Wybierz „Ustawienia kompilacji” i wyszukaj „plist”
  3. Powinna istnieć opcja o nazwie Info.plist File. Zmień lokalizację na właściwą.
keverly
źródło
Ta odpowiedź ma również zastosowanie, jeśli zmienisz nazwę folderu / struktury aplikacji. Dzięki @keverly
Lorem
5

Żadne z powyższych nie działało dla mnie, ale to:

  1. Otwórz projekt w Finderze, kliknij prawym przyciskiem myszy plik .xcodeproj i pokaż zawartość pakietu
  2. Otwórz project.pbxproj w edytorze tekstu
  3. Znajdź odniesienie do brakującego pliku
  4. Edytuj path = "path/to/file.swift"do rzeczywistej lokalizacji na dysku i zapisz plik.
  5. Odbuduj projekt
Ben Gomm
źródło
TO jest ten, który to naprawia ... niewiarygodne
David Seek
To samo tutaj. Jak do diabła to rozgryzłeś?
Peter Schorn
2

otwórz prawy panel nawigacyjny, w którym istnieją pliki twojego projektu LUB JSUT kliknij cmd + 1 Następnie wyszukaj folder „Odzyskane odniesienia” Otwórz wszystkie czerwone pliki (usuń je), a wszystko będzie działać tak dobrze.

Ahmed Samir
źródło
2

Miałem to przy tworzeniu moich testów jednostkowych. Mogło się tak stać, ponieważ usunąłem przykładowe testy.

Usunąłem pakiet testów jednostkowych, a następnie dodałem go ponownie, jak pokazano na poniższych zdjęciach i wszystko było dobrze.

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Declan McKenna
źródło
2

Wystąpił ten błąd po zmianie nazwy pliku. W jakiś sposób Xcode nie zmienił poprawnie nazwy rzeczywistego pliku na dysku.

Więc nie był w stanie znaleźć pliku. Czasami pliki są wyróżniane czerwonym kolorem tekstu. W innych przypadkach ikona Swift przed plikiem miała szarą nakładkę.

Poprawka była prosta.

  • Zajrzyj do błędu i zobacz dokładnie, którego pliku nie można znaleźć.
  • Wybierz plik, którego nie można znaleźć.
  • Przejdź do „Inspektora plików”. Znajduje się w prawym panelu nawigacyjnym Xcode.
  • Kliknij ikonę folderu.
  • Wybierz właściwy plik.
  • Wyczyść kompilację i uruchom ją ponownie.
kochanie
źródło
1

Miałem podobny problem po aktualizacji do nowej wersji Swift. Przenoszenie plików spowodowało, że mój projekt xcode odwoływał się do elementów, które nie znajdowały się już w katalogu projektu, co powodowało, że nie znaleziono pliku wejściowego kompilacji kodu błędu.

W mojej sytuacji w jakiś sposób miałem wiele plików / obrazów, do których odwoływano się, jak opisano poniżej:wprowadź opis obrazu tutaj

Na powyższym obrazku.

  • Przejdź do strony Cele.
  • Następnie kliknij kartę Fazy budowy u góry.
  • Przewiń w dół, aby skopiować zasoby pakietu
  • Znajdź pliki, których dotyczy problem, i usuń je. (naciśnij usuń na nich lub wybierz je i naciśnij przycisk minus)

To tutaj w jakiś sposób miałem wiele plików i obrazów, do których odwoływano się z innych folderów, a kompilacja kończyła się niepowodzeniem, ponieważ nie mogli ich już znaleźć. I ja też nie mogłem ich znaleźć! lub jak Xcode wciąż do nich odwołuje się

Mam nadzieję, że to pomoże komuś innemu!

Julian Silvestri
źródło
1

Miałem ten sam problem. Problem polegał na tym, że nie miałem żadnego pliku w obszarze Cel> Fazy kompilacji> Źródła kompilacji. Problem został rozwiązany po dodaniu co najmniej jednego pliku do Compile Sources.

egabor
źródło
1

Nie to, że zrobiłem coś złego, ale napotkałem ten problem z zupełnie innego powodu i trochę wiem, co go spowodowało.

Wcześniej użyłem Findera i przeciągnąłem plik do katalogu / folderu mojego projektu. I nie przeciągać w Xcode . Aby Xcode włączył ten plik do projektu, musiałem później ponownie przeciągnąć go do Xcode.

Ale kiedy przeszedłem na nową gałąź, która nie miała tego pliku (ani nie musiała), Xcode dawał mi ten błąd:

Nie można znaleźć pliku wejściowego kompilacji: „/ Users / honey / Documents / xp / xpios / powerup / Models Extensions / CGSize + Extension.swift”


Wyczyściłem folder kompilacji i usunąłem moje dane pochodne, ale nie działało, dopóki nie uruchomiłem ponownie Xcode.

kochanie
źródło
1

To zadziałało dla mnie

  1. spróbuj usunąć pliki w kolorze czerwonym
  2. usuń pliki w danych pochodnych
  3. wyczyść folder kompilacji
  4. następnie spróbuj zbudować za pomocą „nowego systemu kompilacji” z pliku-> ustawienia obszaru roboczego
Aditya A. Rajan
źródło
1

W moim przypadku plik (i katalog), o którym wspominał XCode, był nieprawidłowy, a problem zaczął się pojawiać po połączeniu Gita ze stosunkowo dużą gałęzią. Aby to naprawić, wykonałem następujące kroki:

  • Wyszukano plik w systemie katalogowym XCode.
  • Znaleziono plik z błędami podświetlony na czerwono (tj. Brakował).
  • Kliknięto plik prawym przyciskiem myszy i usunięto plik.
  • Spróbowałem ponownie zbudować kod i voila, powiodło się.

Mam nadzieję, że te kroki komuś pomogą.

Arka Mukherjee
źródło
1

W moim przypadku miałem skrypt budujący, który wygenerował plik binarny .app (Buck). Skrypt kompilacji Buck działał równolegle z krokiem kompilacji Swift Embed. Ponieważ plik binarny .app nie został jeszcze wygenerowany, krok Swift zakończył się niepowodzeniem.

W moim skrypcie kompilacji dodałem "$BUILD_PRODUCTS_DIR/$EXECUTABLE_PATH"pod"Output Files" .

To mówi nowemu systemowi kompilacji Xcode, że ten skrypt wyprowadzi plik binarny aplikacji, a Xcode z kolei zapewni synchronizację wszystkich kroków kompilacji, które zależą od tego artefaktu.

wprowadź opis obrazu tutaj

Vlad
źródło
0
  1. Przejdź do Xcode-> File -> Project Setting
  2. Zmień system kompilacji: - „Starsza wersja systemu”.
  3. Oczyść, zbuduj i naciśnij Uruchom.
Abhimanyu Rathore
źródło
0

Xcode narzekał na plik XIB. Uruchomiłem go, przechodząc do Project -> Build Phases -> Copy Bundle Resources, usuwając „problematyczny” XIB, czyszcząc (CMD + Shift + K), budując i dodając ponownie.

Fredy
źródło
0

Istnieje również jedna możliwość, że czasami podczas przenoszenia plików do innego folderu, a zwłaszcza w przypadku przenoszenia info.plistdo innego folderu, trzeba określić lokalizację tego pliku. Aby rozwiązać ten problem, po prostu kliknij niebieską ikonę swojego projektu u góry, a zamiast nazwy projektu i identyfikatora pakietu zobaczysz przycisk, kliknij go i znajdź info.plisttam plik, wyczyść i skompiluj.

Syed Azeem Ahmed
źródło
0

Natknąłem się na ten problem wkrótce po uaktualnieniu do Xcode 10, ale to nie był problem.

Próbowałem zmienić system kompilacji, ale to dało mi osobny błąd, który oznaczał to samo. Mówiąc ogólnie: „Nie można znaleźć pliku X”.

Istnieje wiele rzeczy do sprawdzenia, gdy nie można znaleźć pliku.

  1. Odzyskane pliki referencyjne Folder Apple robi to przyjemne, gdy wykryje odniesienie do pliku, który nie istnieje, doda je do grupy o nazwie „Odzyskane odniesienia”

To miło ze strony Apple, ale nie zawsze działa.

  1. Fazy ​​kompilacji Źródła kompilacji Na tej liście mogą znajdować się metadane dla pliku, który projekt ma skompilować, ale plik w rzeczywistości nie istnieje i próbuje znaleźć plik w podanej ścieżce. Na tej liście zostanie wyszarzona, usuń je i ponownie dodaj, przełączając docelowe zależności pliku lub ręcznie usuwając go i przeciągając.

  2. Ścieżka do pliku Sprawdź dwukrotnie ścieżkę do pliku, do którego jest drukowany błąd, oraz ścieżkę do pliku w wyszukiwarce. Możesz to łatwo zobaczyć, klikając plik w Xcode i zaznaczając zakładkę „Pokaż inspektora plików” (zakładka znajdująca się najbardziej po lewej stronie). Jeśli te ścieżki są poprawne, to jesteś dobry!

  3. Przyciemnione pliki w twoim projekcie, które nie są w odzyskanych odniesieniach ani na czerwono Ten wkurzył mnie, ponieważ nie jest oczywiste, co się stało, ale w zasadzie, jeśli wejdziesz do wyszukiwarki i przeniesiesz plik w inne miejsce bez aktualizacji odniesienia w projekcie zgłosi błąd, ponieważ plik już tam nie istnieje. Jedyną wskazówką, jaką znalazłem, jest to, że plik w zakładce "Project Navigator" (skrajna lewa zakładka) jest nieznacznie przyciemniony, ale kiedy idziesz do usunięcia tego pliku Xcode nie monituje o usunięcie odniesienia lub wysłanie do śmieci. Możesz to naprawić, usuwając plik i dodając go ponownie do projektu lub przechodząc do zakładki „File Inspector” i klikając ikonę folderu obok ścieżki i zmieniając ją w odpowiednią lokalizację.

Tak czy inaczej, błąd wskazuje, że nie może znaleźć pliku, przejście na stary system kompilacji jest rozwiązaniem bardziej konkretnym. Jako programiści rozumiemy, że kompilator chce tylko, aby artefakt był wymieniony na końcu ścieżki pliku. Gdzieś ścieżka nie jest poprawna! Musimy się dowiedzieć, gdzie to jest!

Mój problem został rozwiązany z punktem 4 wymienionym powyżej. Mam nadzieję, że to komuś pomoże.

A'sa Dickens
źródło
0

Plik> Ustawienia projektu> Zmień systemy kompilacji na starsze systemy kompilacji

Apurva Aggarwal
źródło
3
Przydałoby się
0

W moim przypadku przypadkowo usunąłem jeden folder xcodeproj innej firmy, którego użyłem w mojej aplikacji.

sabiland
źródło
0

Jeśli próbowałeś profilowania, ale to nie zadziałało, a teraz nie możesz budować, przejdź do panelu Cel (za pomocą ikony projektu), przełącz na kartę Ustawienia kompilacji, wyszukaj PROFIL - i ustaw CLANG_USE_OPTIMIZATION_PROFILE na „Nie”.

Konchog
źródło
0

W moim przypadku utworzyłem nowy cel testowy i usunąłem domyślny plik Swift, więc pozostał tylko info.plist. Dodanie nowego pliku rozwiązało ten problem.

Kwaku Eshun
źródło