Xcode nagle przestał uruchamiać projekt na sprzęcie: „Nie można uruchomić xxx.app: .. Nie ma takiego pliku ..” [zamknięte]

139

Xcode przestał być w stanie uruchomić moją aplikację, uruchomił się bezpośrednio po usunięciu go z urządzenia i próbie ponownej instalacji przez ponowne uruchomienie w Xcode (coś, co robiłem już setki razy).

To mówi

„Nie można uruchomić XXX.app”

„Nie ma takiego pliku lub katalogu (/Users/Mylaptop/Library/Developer/Xcode/DerivedData/MyApp-ekxcbebfpzkahtfkujyqkcwprzia/Build/Products/Debug-iphoneos/MyApps.app/MyApp)”.

Ponownie uruchomiłem telefon, ponownie uruchomiłem Xcode, wyczyściłem wszystko, wszystko odbudowałem. Ten komunikat o błędzie nie zniknie.

Dzieje się tak w przypadku Xcode 4.5, którego używam od czasu jego udostępnienia. Jeśli powrócę do wersji 4.3.2, Xcode wyświetli komunikat „Zakończono działającą aplikację”, ale tak naprawdę nic nie robi - aplikacja nie jest ani zainstalowana, ani uruchomiona.

Całkowicie utknąłem - nie mogę już niczego uruchomić na urządzeniu.

Jakieś sugestie?

Gruntcakes
źródło
4
Idź do Organizatora w swojej Xcode karcie projektów prasowych i usuwać dane uzyskane dla danego projektu i oczyścić projekt i ponownie zbudować go ..
DINESH Raja
2
Po wykonaniu tej czynności nadal masz to samo. Spróbuję przeinstalować Xcode.
Gruntcakes,
Myślę, że zmieniłeś coś w ustawieniach kompilacji na ścieżce uruchamiania aplikacji na urządzeniu
Dinesh Raja,
9
Dowiedziałem się, co to jest - dodając możliwości urządzenia do info.plist w jakiś sposób dodałem nowy wiersz, ale nie nadałem mu wartości.
Gruntcakes
1
Chociaż usunięcie danych pochodnych w końcu zadziałało dla mnie, nie pomogło, dopóki nie zrestartowałem iPada i OS / X, opróżniłem kosz po użyciu Findera do usunięcia danych pochodnych i usunąłem urządzenie peryferyjne BLE podłączone przez port USB. Nie wiem, który z kroków był wymagany - XCode później skompilowany z podłączonym urządzeniem peryferyjnym BLE - ale kiedy wszystkie te kroki zostały dodane do usunięcia danych pochodnych, projekt skompilował się dobrze.
Mike,

Odpowiedzi:

125

To naprawdę irytujące. Ten błąd występuje w wielu różnych sytuacjach. Czasami ponowne uruchomienie Xcode rozwiązuje problem. Jeśli nie, wykonaj następujące kroki:

Odłącz urządzenie.

Usuń aplikację ze swojego urządzenia.

Zamknij Xcode (nie zamykaj po prostu okna, zakończ je)

Usuń folder danych pochodnych ( ~/Library/Developer/Xcode/DerivedData/-gbrvhlvwmpiobxdujegtghggrffp- lub coś w tym rodzaju)

Teraz ponownie uruchom Xcode, podłącz urządzenie i uruchom projekt. Powinno działać dobrze.

z bloga DhilipSiva

Sudhakar
źródło
4
To był dla mnie klucz. Doceń poziom szczegółowości odpowiedzi.
Jason Pawlak
To tylko jedna z „naprawdę irytujących” rzeczy podczas pracy na tej platformie
gorączka
2
nie działa ... korzystam z urządzenia
Rajneesh071
Powyższe kroki nie rozwiązały problemu. Nadal otrzymuję komunikat „Nie można uruchomić <aplikacji>. Nie znaleziono <Aplikacji>”.
user298261
pracował dla mnie, spróbuj tego
Muhammad Waqas
57

Spróbuj usunąć „Wymagane możliwości urządzenia” w pliku -Info.plist.

Nie możesz wymagać armv7 na 3G i nie możesz wymagać armv6 na żadnym nowszym urządzeniu, więc po prostu całkowicie usuń ten atrybut.

Almog C
źródło
2
To jedyne rozwiązanie, które mi pomogło. Już próbuję odświeżyć certyfikaty, wyczyścić foldery restartując urządzenie, xcode i mac nic nie pomogło. Po prostu usuń atrybut, a zainstalował się i działał dobrze.
automaticoo
1
U mnie też to rozwiązanie zadziałało - dziwny błąd.
błędne określenie
Musiałem również upewnić się, że prawidłowe architektury w konfiguracji obejmowały armv6, armv7 i armv7s (używam teraz XCode 4.5 ... Wiem, że minęło kilka miesięcy, ale warto o tym wspomnieć). Te trzy powinny być wymienione. także w sekcji Architektury.
David Morton,
Próbowałem tego, bez radości, ale odpowiedź Sudhakar + Jagger zadziałała. Xcode 4.5.1 i iPad1
mm2001
To był problem dla mnie: moja aplikacja miała „telefonię” jako wymaganą funkcję i próbowałem uruchomić aplikację na iPadzie mini z łączem Wi-Fi.
chitza,
38

Znalazłem odpowiedź. Wersja celu wdrożenia systemu iOS różni się od wersji systemu operacyjnego mojego urządzenia.

wihing
źródło
Dla mnie też to zrobił. Z jakiegoś powodu XCode zawsze chce zresetować cel wdrożenia mojego projektu do wersji 6.0.
Donald Burr
3
u mnie też zadziałało ... Zmieniłem typ urządzenia z „iPhone” na „Universal” i xcode automatycznie zmienił cel na 6.0, czego na początku nie zauważyłem. Przeniesiono z powrotem do 4.3 i zadziałało ...
Jim Jose
Szkoda, że ​​usunięcie DerivedData i wymaganych możliwości urządzenia nie pomogło, więc ustawiłem cel wdrożenia z 6.1 na 5.0 i zadziałało na moim iPodzie Touch z systemem iOS 5.1.
Richard Altenburg - Brainchild
o Boże. ile razy zrobię to samo ...
szesnastkowo
to było rozwiązanie dla mnie
GeorgeBuckingham
13

Najpierw wypróbowałem niektóre z powyższych z info.plists i usuwając dane pochodne, wyczyść itp.

Moje rozwiązanie: wyjdź z XCode, otwórz ponownie projekt. Przejdź do danych pochodnych w Finderze. Usunięte dane ze wszystkich projektów (wszystkie można było usunąć, ale najpierw spróbuję usunąć dane projektu z problemami). A potem znowu zadziałało. Usuwanie danych pochodnych z XCode nie działało.

Joris van Liempd iDeveloper
źródło
4
Ścieżka do folderu danych pochodnych: / Users / <User> / Library / Developer / Xcode / DerivedData /
Pascalius
to rozwiązało mój problem + Usunięcie wszystkich folderów zwolniło 10 GB pamięci, więc podwójne dzięki :)
thesummersign
10

Poniższe rozwiązania rozwiązały mój problem ... moja aplikacja działała dla mnie podczas debugowania / wydania, a następnie zbudowałem kilka archiwów ad-hoc i kompilacje debugowania / wydania przestały działać.

Objawy:

  • nieprawidłowe uprawnienia błędy podczas uruchamiania z Xcode na urządzenie (graj z uprawnieniami ...)
  • natychmiastowe przerwanie bez błędu (zakończenie działania) podczas uruchamiania symulatora
  • nie można uruchomić ... katalogu blabla ... / build / product / debug-iphoneos / ... nie znaleziono podczas uruchamiania z Xcode na urządzenie.

W końcu po próbie skorzystania z bólu innych osób znalazłem w Targets [AppName]:

Build Settings
Build Locations
Build Products Path build

Powinien być

Build Products Path build/Products

Nie mam pojęcia, jak to zostało źle ustawione. Musi to być zakodowane na stałe gdzieś w Xcode / Springboard, ponieważ „Produkty” pojawiają się zarówno w Xcode, jak iw konsoli urządzenia. To jest Xcode 4.5.1.

zrzut ekranu fo, gdzie ustawić kompilację / produkty

KeithL
źródło
1
Czy mógłbyś to sformatować, aby znaczenie było trochę jaśniejsze? Nie jest oczywiste, jak należy go wpisać.
jegobruce
1
Wow, wielkie dzięki Keith. Po 4 frustrujących godzinach okazuje się, że to była przyczyna. To, jak to się zmieniło, jest poza mną.
karl_
1
Tak, to rozwiązało mój problem, ale dlaczego tak się stało ?!
Ali
7

Rozwiązałem ten problem przez

zmiana nazwy katalogu powyżej mojego projektu XCode

Zmiana nazwy projektu w XCoderozwiązaniu tego za mnie.

W XCodeprogramie w Nawigatorze projektu kliknij nazwę projektu, co powinno pozwolić ci zmienić nazwę, tak jak plik w Finderze. Usunięcie danych pochodnych nie pomogło.

Scott Driscoll
źródło
To zrobiło to dla mnie, z jakiegoś powodu zawiodło, gdy miałem spację w nazwie projektu. Zmieniono nazwę na brak spacji i działa dobrze.
rita
6

Zbudowałem swój projekt XCode za pomocą CMake i jakimś cudem (lub moje głupie ja) usunąłem lub opróżniłem właściwość „Plik wykonywalny” w info.plist. Ustawiłem z powrotem na $ {EXECUTABLE_NAME} i znowu zadziałało.

Zajęło mi dużo czasu przepracowywanie wszystkich sugestii i poprawek, aż w końcu znalazłem ten problem.

Mam nadzieję, że pomoże to komuś zmagając się z tym samym problemem

Edytować:

W jakiś sposób CMake zepsuł mój plik plist. Stworzyłem własny Info.plist i użyłem go w następujący sposób:

SET_TARGET_PROPERTIES( MyApp PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/MyApp.plist )

W mojej plistce miałem ten wpis:

<key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string>

Niestety CMake nadal wydaje się analizować ten plik i zastępując $ {EXECUTABLE_NAME} pustym ciągiem, ponieważ jest to składnia zmiennej CMake. Moje szybkie obejście jest następujące:

SET( EXECUTABLE_NAME "\${EXECUTABLE_NAME}" )

Teraz działa jak urok.

Prawdopodobnie jestem sam z tym problemem, ale kto wie.

ecreif
źródło
Miły. Przypadkowo usunąłem plik .plist i była to jedna z właściwości, które musiałem dodać ponownie. Dzięki
To set(EXECUTABLE_NAME "\${EXECUTABLE_NAME}")było dokładnie to, czego potrzebowałem. Dodałem tę linię na dole mojego pliku toolchain i naprawiłem to bezbłędnie. Wielkie dzięki!
Deathicon,
5

Miałem ten sam problem, ale w moim przypadku miałem złe wymagania w mojej info.plist (wymagany żyroskop dla iPhone 3Gs)

Unfalkster
źródło
4

Próbowałem uruchomić swój projekt na innym systemie niż ten, na którym został opracowany. Otrzymywałem komunikat „Nie można uruchomić xxx.app: .. Nie ma takiego pliku ..”.

Usunięto aplikację z urządzenia, a następnie usunięto dane pochodne od organizatora w xcode dla aplikacji. Organizator -> Projekty -> Pochodna DAta -> Usuń

Mój problem został rozwiązany.

iSaalis
źródło
4

Musisz ustawić cel wdrożenia LOWER niż wersja urządzenia

Jim Huang
źródło
4

Dla mnie rozwiązaniem było po prostu użycie prawidłowego (nie-dystrybucyjnego) profilu aprowizacji.

Domyślnie zawsze korzystałem z profilu aprowizacji ad hoc, ale potem zmieniłem na profil programisty (profil zespołu) i to rozwiązało problem. Poszedłem dalej i wyczyściłem katalog danych pochodnych, aby był bezpieczny, ale nie wiem na pewno, czy jest to wymagane.

XCode miało kiedyś ostrzeżenie, które informowało, że należy użyć prawidłowego profilu aprowizacji, ale ten komunikat o błędzie wydaje się znikać w XCode 4.5.

TPoschel
źródło
Jest to z pewnością kilka błędów i poprawek, oczywiście wiele błędów XCode przekłada się na ten nieprzydatny komunikat o błędzie. TYM razem, dla nas i kilku innych poniżej, wydawało się, że jest to spowodowane problemami z certyfikatem / podpisem / profilem, rzuceniem kilku starych, które wygasły i upewnieniem się, że wszędzie używam tych samych profili (jak Jabolcnik poniżej , Mam kilka kont deweloperskich, mojego pracodawcy i własne.) Zezwolił XCode na uruchomienie aplikacji na urządzeniu.
Taryn
4

Miałem ten problem z bardzo dziwnym rozwiązaniem.

Mój problem był nieco inny, ponieważ mam 2 certyfikaty programistów w pęku kluczy. Mamy dwa konta programistów (powiedzmy AD i BD).

1) Zmieniłem identyfikator pakietu z com.BD.game na com.AD.game 2) Urządzenie, na którym miałem problemy, zostało podpisane tylko w profilach obsługi AD. 3) Nie udało mi się zdebugować gry na iPadzie - chociaż urządzenie miało prawidłowe profile aprowizacji, miałem ważne certyfikaty, zrestartowałem Maca, urządzenie, przeinstalowałem Xcode ... nic nie pomogło.

To, co zrobiłem dzisiaj, to sprawdzenie pliku project.pbxproj pod kątem dziwnych wpisów.

Odkryłem, że Xcode używa odpowiedniego profilu aprowizacji, ale podpisuje ipa / app niewłaściwym certyfikatem.

"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: **BD** (XX******)";

Po ręcznym poprawieniu nazwy i identyfikatora; wszystko działa jak urok.

Jabolcnik
źródło
4

Mam ten sam błąd. W moim przypadku jako cel wdrożenia ustawiłem 6.1 i próbowałem uruchomić iPada z iOS 5.1. Kiedy zmieniłem cel wdrożenia na 4.3, problem został rozwiązany.


Nadal mam problem. Spróbuj tego Odłącz urządzenie. Usuń aplikację ze swojego urządzenia. Zamknij xcode. Teraz uruchom Xcode, podłącz urządzenie i uruchom projekt. Powinno działać dobrze.

Nijil Nair
źródło
4

U mnie (używam IOS 7 i Xcode 5) błąd zniknął zaraz po dodaniu do Centrum członkowskiego na moim urządzeniu w Organizatorze.

Bruce Cichowlas
źródło
To pomogło. Jednak później musiałem ponownie uruchomić urządzenie, aby pozbyć się błędu.
Bouncing Bit
3

Chciałbym wspomnieć, że najłatwiejszym sposobem otwarcia folderu DerivedData w Finderze jest:

  1. Otwórz Organizator.
  2. Kliknij „Projekty”.
  3. Wybierz problematyczny projekt.
  4. Obok ścieżki do DerivedData kliknij mały przycisk ze strzałką w prawo.

Usunięcie zawartości folderu DerivedData działało dla mnie. Zamiast używać przycisku „Usuń ...”, powinieneś mieć większy sukces podczas ręcznego usuwania plików za pomocą Findera.

user444731
źródło
3

Idź do: twój projekt Cel -> Informacje i z CustoM iOS Target Properties usuń wymagane możliwości urządzenia. W moim przypadku były to armv7 i armv7s.

Następnie aplikacja została pomyślnie zbudowana na moim iPhonie 4.

Tak to wygląda po usunięciu obu wymagań

Dejan Balaban
źródło
Widziałem ten sam problem, aplikacja będzie działać na moim 5S po raz pierwszy, ale nie kolejne razy, okazało moje wymaganych zdolności urządzenia zostały ustawione na „ARMv7”, usuwając że z informacji plist stałe
Cam Saula
2

Dla mnie zapomniałem, że mam „telefonię” w „Wymaganych możliwościach urządzenia” w info.plist. Usunąłem to i w końcu zadziałało na moim iPadzie.

ninjaneer
źródło
2

Dla mnie ponowne uruchomienie Xcode, wyczyszczenie DerivedData i przywrócenie urządzenia w większości przypadków nie wystarczało, dopóki nie zorientowałem się, że iTunes również działa, a po wyjściu z iTunes wszystko działało dobrze!

Więc moje kroki są teraz proste:

1. Zamknij Xcode.
2. Jeśli iTunes jest uruchomiony, zamknij iTunes.
3. Ponownie otwórz projekt.

Nie ma potrzeby usuwania aplikacji z urządzenia, czyszczenia projektu ani ponownego uruchamiania / odłączania urządzenia. Myślę, że dzieje się tak dlatego, że Xcode i iTunes używają niektórych typowych bibliotek (jak wiesz, Xcode Installer zawsze prosi o zamknięcie iTunes podczas instalacji iOS SDK).

parametr
źródło
2

Miałem ten problem i wypróbowałem kilka sugestii, które nie zadziałały - potem znalazłem tę o usunięciu „Wymaganych możliwości urządzenia” w pliku -Info.plist (który zawierał dla mnie usługi lokalizacyjne i GPS) To się udało! Następnie dodałem je ponownie i nadal działało ... idź do figury. To był xCode 4.6.1, a moja aplikacja jest programistą z Phonegap / Cordova

Dylan Hamilton-Foster
źródło
Znalazłem tam też pusty sznurek i blokował organizator! Dzięki za wskazówkę !
PetrV,
2

Wypróbowałem wszystkie powyższe, ale nadal nie działało. Rozwiązałem problem, zmieniając pochodne położenie kompilacji. Plik> Ustawienia projektu> „lokalizacja danych pochodnych” zmienia się na zależną od projektu. Możesz też po prostu upewnić się, że domyślna ścieżka ma uprawnienia do odczytu / zapisu.

wickedgk
źródło
1

Wydawało się, że moim problemem jest wybieranie portretu (górny przycisk strony głównej) jako pozycji 0 w orientacjach obsługiwanych interfejsów na mojej liście. Usunięcie tego lub przesunięcie w dół wydawało się rozwiązać mój problem. Domyśl.

Becka11y
źródło
1

Miałem ten problem również w przypadku aplikacji Universal z Xcode 4.5 TYLKO na moim iPhonie, gdzie miałem dwa urządzenia do debugowania:

iPhone 4 iOS 5.1.1
iPad 1   iOS 5.1.1

W Info.plist był pusty wpis w sekcji „Wymagane możliwości urządzenia”. Wiem, że nie wprowadziłem tego pustego elementu „0”. Aplikacja ładuje się na iPhonie, odkąd usunąłem pusty element. Nie napotkałem tego problemu na żadnej z kilku wcześniejszych wersji Xcode, co oznacza, że ​​Xcode 4.5 inaczej obsługuje ten „wstawiony” element dla dwóch używanych przeze mnie urządzeń. Myliłem się wcześniej, ale wygląda to na błąd w Xcode 4.5.

mbarron
źródło
1

Może się to wydawać oczywiste, ale musisz również ustawić cel wdrożenia na system operacyjny, na którym działa Twoje urządzenie.

Jeśli więc uaktualnisz system do iOS 6, jako cel wdrożenia zostanie ustawiony iOS 6. Musisz wdrożyć wersję 5.1, jeśli testowane urządzenie nadal działa w wersji 5.1.

Matt Hudson
źródło
1

Mój problem w końcu został rozwiązany, sprawdzając, czy productNameatrybut w /* Begin PBXNativeTarget section */sekcji mojego project.pbxprojpliku jest zgodny z rozszerzeniemname atrybutem.

Po edycji, aby były takie same, Xcode wreszcie poprawnie uruchamia aplikację na moim urządzeniu!

Dziękuję Maxowi Weiselowi za pomoc! :RE

Grantland Chew
źródło
1

Usunięcie folderu danych pochodnych nie pomogło mi. Używając Xcode 4.4.2 jedynym rozwiązaniem było otwarcie Organizatora i usunięcie starych, wygasłych i zbędnych profili aprowizacji na iDevice. Wtedy wszystko znów działało idealnie.

Robert Wasmann
źródło
Jest to z pewnością kilka błędów i poprawek, oczywiście wiele błędów XCode rozbija się na tej ziemi niczyjej.
Taryn,
1

Może to być czerwony śledź, ale napotkałem te problemy, gdy dodałem niestandardowe obrazy uruchamiania przed usunięciem domyślnych. Usunięcie domyślnego uruchamiania i niestandardowych obrazów, a następnie ponowne dodanie niestandardowych naprawiło to za mnie. Pracuję z iOS 6 i Xcode 4.5.2

G O'Rilla
źródło
1

Wydaje się, że jest kilka różnych przyczyn, które mogą powodować ten bardzo pomocny komunikat o błędzie.

W moim przypadku było to spowodowane nieprawidłowym „Wymaganymi możliwościami urządzenia” w Info.plist. Przez pomyłkę dodałem pusty element tablicy (na szczycie architektury, armv7). Usunięto pusty element tablicy i teraz wszystko jest w porządku!

MattP
źródło
1

Miałem ten problem i nic tak naprawdę nie pomogło, z wyjątkiem: Mój problem zaczął się po zmianie zawartości mojej listy info.plist i żadne przywracanie nie pomogło.

Rozwiązało to dla mnie:

  1. Utwórz waniliową listę info.plist w zupełnie nowym projekcie
  2. Zastąp stary info.plist nowym
  3. zmiana nazwy (np. app_info.plist)
  4. Ustaw ustawienia kompilacji / opakowanie / INFOPLIST_FILE jako nowy.
  5. Wprowadź wszystkie zmiany, których potrzebujesz w swoim projekcie

Mam nadzieję, że to pomoże. Wypróbowałem wszystko inne, co tutaj zasugerowałem i to było dla mnie jedyne rozwiązanie.

Capi Yoav Kedem
źródło
1

W obliczu tego samego problemu, ale teraz problem został rozwiązany, Executable file usunąłem info.plist. Ustawiłem z powrotem na $ {EXECUTABLE_NAME} i znowu zadziałało .. :)

wprowadź opis obrazu tutaj

Rajneesh071
źródło
1

W moim przypadku po prostu ustawiłem uprawnienia 777 bezpośrednio do folderu xxx.app na wszystkie pliki i działam!

Arthur Goulart
źródło