Xcode 4 mówi „skończył działać <moja aplikacja>” na docelowym urządzeniu - nic się nie dzieje

223

Aplikacja nie instaluje się ani nie działa na moim urządzeniu. Wszystkie profile udostępniania są aktualne. Próbowałem już je usunąć i ponownie zainstalować.

Pasek stanu pokazuje, że Xcode buduje mój projekt, następnie mówi o uruchomieniu mojego projektu, a następnie o zakończeniu pracy. Przez cały ten okres ekran iPoda pozostaje czarny. IPod jest wykrywany w Organizatorze i nie widzę nic złego w jego konfiguracji. Wszystko działało idealnie zaledwie kilka dni temu dzięki Xcode 3.

Nie działa na symulatorze, ale może być ważne, aby pamiętać, że w symulatorze wydaje się, że utknął na „Dołączaniu do”, a symulator odmawia uruchomienia.

D-Nicea
źródło
1
Jeśli utworzysz zupełnie nowy projekt za pomocą jednego z szablonów xcode i spróbujesz uruchomić go w symulatorze lub urządzeniu, czy będzie działać? Próbuję ustalić, czy instalacja / konfiguracja xcode jest zepsuta lub czy coś w aplikacji, o którą pytasz, wpływa na zachowanie.
kennbrodhagen 13.03.11
2
Utworzono nowy szablon projektu i działało. Teraz wiemy, że coś musi być źle skonfigurowane w moim projekcie.
D-Nice,
D-Nice, czy kiedykolwiek to rozwiązałeś? Mam dokładnie ten sam problem z grą i nie mogę go rozwiązać przez całe życie.
Adam Johnson,

Odpowiedzi:

268

Dla osób czytających to w odniesieniu do Xcode 4.2 i próbujących uruchomić na wcześniejszym urządzeniu (np. IPhone 3G, 2G, iPod 1. generacji itp.) Mam inne rozwiązanie. Nowe projekty utworzone w Xcode 4.2 domyślnie określają „armv7” w „Wymaganych możliwościach urządzenia”. Musisz to usunąć, jeśli chcesz obsługiwać urządzenia z systemem Armv6 (np. IPhone 3G).

wprowadź opis zdjęcia tutaj

Usuń armv7 z „Wymaganych możliwości urządzenia” na liście ProjektNazwa-Info.plist

Może być również konieczna zmiana ustawień kompilacji, aby kompilować z armv6 zamiast armv7.

To jest domyślne:

wprowadź opis zdjęcia tutaj

Kliknij dwukrotnie „Standard (armv7)”, aby dodać kolejny, a następnie kliknij „+” w wyskakującym okienku i wpisz „armv6”:

wprowadź opis zdjęcia tutaj

Kliknij gotowe i powinno to wyglądać tak:

wprowadź opis zdjęcia tutaj

MattyG
źródło
1
Bingo: Musiałem wykonać dwa opisane kroki, aby działać poprawnie na moim starym telefonie iPhone 3G. Dzięki MattyG!
Ariel Malka
1
Stukrotne dzięki! Dałbym ci 10 głosów, gdybym mógł. Przeglądałem wszystkie scenariusze na tej stronie, bez żadnego szczęścia. Jakoś ta wartość musiała zostać zmieniona podczas aktualizacji do XCode 4.3.
IcyBlueRose
Dziękujemy za starania o szczegółowe wyjaśnienie procedury.
alekhine
4
Dziękuję też ode mnie! Wiele osób sugerowało dodanie „armv6”, ale usunięcie armv7 to sztuczka!
Harry Wood,
1
„Usuń armv7 z„ Wymaganych możliwości urządzenia ”w swoim projekcieName-Info.plist” -> Dzięki
Oded Regev
43

Właśnie miałem ten problem, ale dla mnie było tak dlatego, że podałem tylko armv7 w moich architekturach, ale 3G to armv6. Upewnij się, że masz oba.

axiixc
źródło
To była dla mnie główna przyczyna. Tak łatwo to zapomnieć. Dzięki.
Łukasz
5
Aby dodać opcję „armv6”, zobacz to: stackoverflow.com/questions/7488657/…
pauloya,
Mój starszy iPod Touch również musi mieć armv6, ponieważ ta poprawka również zadziałała.
progrmr
Tak, jestem całkiem pewien, że oryginalny iPhone, 3G i pierwsze dwa iPody touch były armv6.
axiixc
21

Miałem ten problem i okazało się, że XCode ustawiał domyślnie Cel wdrożenia na 4.3, podczas gdy mój telefon to 4.2.1. Zmiana docelowego poziomu wdrożenia na 4.0 wydawała się rozwiązać.

Jeremy Flores
źródło
Dokładnie tego szukałem.
abscondment
Miałem ten problem podczas ustawiania docelowego poziomu wdrożenia na 5.1, gdy moje urządzenie było w wersji 5.0.1 - okrzyki kolego +1
theiOSDude
12

Po dodaniu „armv6” do architektur Project and Targets, upewnij się, że nie masz „armv7” w sekcji „Wymagane możliwości urządzenia” na stronie info.plist. Jeśli tak, po prostu go usuń i powinno działać!

Johann
źródło
Tak, to jest powód mojej sprawy. Nie mam pojęcia, w jaki sposób pojawiły się „Wymagane możliwości urządzenia” armv7. Dzięki!
GeneCode
11

Ten sam problem tutaj, ponieważ aplikacja nie działa na urządzeniu. Usunięcie aplikacji z urządzenia nie pomogło. Projekt -> Wyczyść, a następnie Projekt -> Uruchom ponownie również nie pomógł. Okazało się, że samo zamknięcie i ponowne uruchomienie Xcode 4 rozwiązało to.

SPitBalls.com
źródło
9

Właśnie to miałem. Dodałem sekcję UIRequiredDeviceCapabilities do info.plist, wymagającą gamekit, a aplikacja nie zostanie skopiowana na iPhone 3G z systemem iOS 4.2. Usunięto wymaganą zdolność, wszystko jest w porządku.

Graham Perks
źródło
Jak zatem testować aplikacje wymagające gamekit na samym urządzeniu?
Rob
Nadal dostajesz GameCenter bez informatora.pl, że potrzebujesz urządzenia, które go ma. Każde urządzenie z systemem 4.2 ma GameCenter, więc nie ma potrzeby korzystania z dodatkowej listy info.plist „Potrzebuję!”
Graham Perks
6

Spróbuj usunąć aplikację na urządzeniu (podobnie jak zwykła dezinstalacja aplikacji) i ponownie uruchom ją z Xcode. Pomógł mi z tym samym problemem, oprócz tego, że symulator nie działa.

Tomek Kopczuk
źródło
Nie ma już śladu aplikacji na urządzeniu. Nie sądzę, że jest to problem z obsługą administracyjną ... coś jest zepsute w moim projekcie, ale nie mam pojęcia, co to może być.
D-Nice,
6

Mój przypadek: przez pomyłkę ustawiłem: Wymagane możliwości urządzenia -> akcelerometr na NIE (w Info.plist). Wystarczy ustawić go z powrotem na TAK

Ponadto: Upewnij się, że Wymagane możliwości urządzenia są odpowiedniego typu: tj. Boolean lub String. Niewłaściwy typ niezmiennie spowoduje, że test się nie powiedzie, a aplikacja się nie załaduje.

Casey
źródło
4

Dla tych, którzy wciąż chodzą, kolejną rzeczą, którą musiałem zrobić, było to, aby nazwa mojego celu była taka sama dla konfiguracji debugowania i wydania. To było „uruchamianie” wersji Debugowania, której nie budowałem.

Łukasz
źródło
4

dodanie architektury armv6 naprawiło to dla mnie.

czerwony samochód
źródło
to było dla mnie; nowa wersja Xcode decyduje się usunąć armv6 z ustawienia kompilacji „Architektury”, więc będziesz musiał dodać go ponownie ręcznie
2

Czasem mi się to zdarza. Czyszczenie (menu Produkt -> Wyczyść) i uruchamianie (menu Projekt -> Uruchom) zawsze to naprawia.

Czarny
źródło
Dzięki! Zdarza się to często. Za każdym razem próbuję czegoś nowego! Czy to błąd w Xcode?
Namratha
2

Miałem ten sam problem: migrowałem projekt z xcode3 do xcode4, a po zbudowaniu aplikacji xcode nie chciał instalować i uruchamiać aplikacji na moim telefonie.

Moje rozwiązanie (które dla mnie zadziałało) to:

  • Edytuj swój schemat (który ma zostać uruchomiony)
  • Z listy po lewej wybierz „Uruchom xyz.app”
  • Pod kartą informacyjną w pliku wykonywalnym wybrałem opcję „.app”. Zmień to, przechodząc do katalogu kompilacji i wybierając aplikację.

Pracowałem dla mnie i od teraz mogę używać: „Produkt -> Wykonaj akcję -> Uruchom bez budowania”, aby uruchomić najnowszą kompilację. Jest to szybsze niż zwykłe naciśnięcie przycisku Uruchom, ponieważ nie zostaną podjęte żadne działania kompilacji.

Bxantus
źródło
nie ma katalogu kompilacji dla mojego? dziwne.
Sam Jarman,
1

Po prostu uruchom ponownie urządzenie. Wykonaj czysty projekt. Usuń aplikację z urządzenia i przebuduj.

Alex Terente
źródło
0

Ustawienia kompilacji były różne dla projektu i celów. Po prostu naciskam suppr na ścieżce kompilacji produktów i ścieżce plików kompilacji pośredniej w obu sekcjach, co rozwiązało mój problem.

GeorgioA
źródło
0

Miałem ten sam problem z moim projektem gry przy użyciu Cocos2D. „Witaj świecie” z szablonu działało poprawnie, mój projekt działał poprawnie w symulatorze, ale uruchomienie nie powiodło się na urządzeniu z komunikatem: „Zakończono uruchomienie”.

Zastąpiłem Info.plist w moim projekcie początkowym z szablonu i to działało dla mnie!

rudyryk
źródło
0

Doświadczyłem tego dwa razy z dwiema różnymi aplikacjami, gdy przechodziłem do najnowszej wersji Xcode. Po raz pierwszy udało się skompilować aplikację za pomocą kompilatora GCC LLVM. Za drugim razem udało się dodać z powrotem architekturę armv6 jako architekturę obsługiwaną, ponieważ została usunięta, gdy Xcode automatycznie zaktualizował projekt.

Halle
źródło
0

Rozwiązałem to, zmieniając „akcelerometr” z „NIE” na „TAK” w moim Info.plist.

Informacje o kluczach listy właściwości informacji firmy Apple mówią, że możesz całkowicie usunąć ustawienie „akcelerometru”, jeśli „aplikacja wykrywa tylko zmiany orientacji urządzenia”.

codeperson
źródło
Twoja aplikacja obsługuje akcelerometr?
Mac.
0

Moim rozwiązaniem było dodanie UIInterfaceOrientationPortraitdo UISupportedInterfaceOrientationstablicy w Info.plist, mimo że moja aplikacja nie obsługuje portretu.

Morrowless
źródło
0

Pole o nazwie „Aplikacja wymaga środowiska iPhone'a” w jakiś sposób trafiło do mojej listy. Usunąłem go i voila! Działa na moim iPodzie.

Namratha
źródło
0

Mój Info.plist miał ustawione członkostwo docelowe na mój cel kompilacji. Usunięcie go z docelowego członkostwa rozwiązało problem.

RohinNZ
źródło
0

Używałem alternatywnej nazwy Info.plist, ale nie ustawiłem poprawnie Info.plist Filekompilacji w moim celu. Odkryłem to, patrząc na pakiet aplikacji i widząc, że nie zawiera on Info.plist.

Ben Flynn
źródło
0

Upewnij się, że docelową wersją wdrażania jest <= wersja iOS na twoim urządzeniu. W ten sposób rozwiązałem ten problem.

d4n13l
źródło
0

Miałem ten sam problem przez około 45 minut. Czyszczenie nie pomogło, ponowne utworzenie projektu nie pomogło, wersja ramienia nie pomogła. Miałem otwarte komunikaty „Nie można zsynchronizować z iTunes”, których wcześniej nie widziałem. Wydawało się, że kliknięcie przycisku OK rozwiązało problem :(

John Fawcett
źródło
0

Kompilacja, uruchomienie i zakończenie XCode, ale aplikacja nie została wdrożona i nie została nawet skopiowana na urządzenie.

W rzeczywistości w projekcie XCode powinno być coś zepsutego. Najlepszym krokiem jest zbudowanie nowego projektu od podstaw. Nie zapomnij dodać obsługi armv6, jak podano w poprzednim poście.

To działa dobrze dla mnie!

Claude COULOMBE
źródło
0

Zdarzyło mi się to, gdy próbowałem uruchomić aplikację watchOS na urządzeniu, ponieważ wersja watchOS mojego Apple Watch była wyższa niż obsługiwany obecnie zainstalowany Xcode. Uaktualniłem do najnowszego Xcode (który również wymagał uaktualnienia do najnowszego systemu macOS), a potem działał dobrze .

nickjwallin
źródło