Nie można uruchomić aplikacji w symulatorze: napotkano błąd podczas uruchamiania (Domain = LaunchServicesError, Code = 0)


91

Po pomyślnym skompilowaniu projektu w Xcode 6 nie mogę go uruchomić w symulatorze z powyższym komunikatem. Zrobiłem wszystkie możliwe badania, próbowałem wszystkiego i nadal nie ma postępu.

Nie pracuję ze swiftem, nie używam też widżetów ani rozszerzeń, więc proszę nie sugerować rozwiązań spowodowanych nimi, jak widać w podobnych pytaniach.

Jeśli ktoś znalazł inną możliwą przyczynę (lub rozwiązanie !!) niż te , proszę o pomoc. Dzięki


dobrze by było, gdybyś mógł wymienić to, co próbowałeś wykluczyć te zalecenia.
donmarkusi

Problem został już rozwiązany, ale tylko dla informacji próbowałem: - uruchomić czysty - usunąć pamięć podręczną projektu / dane pochodne - zrestartować zarówno Symulator, jak i Xcode - zrestartować komputer Mac - ponownie zainstalować Xcode - wyczyścić i ponownie zainstalować CocoaPods - sprawdzić ustawienia kompilacji pod kątem rzadkich wygląd Nic nie pomogło. Nie próbowałem bawić się nazwami rozszerzeń aplikacji, ponieważ nie używam żadnych.
Miki,

3
„Produkt -> Czystość” zadziałał dla mnie.
nshuman


Ponowne uruchomienie symulatora rozwiązało mój problem
Bhavesh

Odpowiedzi:


175

„Zresetuj zawartość i ustawienia” z opcji menu iOS Simutalor i uruchomienie symulatora po zamknięciu rozwiązało mój problem.

Zresetuj zawartość i ustawienia


6
O wiele lepsze niż początkowa odpowiedź. Powinien być oznaczony jako rozwiązanie.
denizlexic

Potem musiałem też wyjść i ponownie otworzyć symulator.
jfredsilva

Ten wymóg jest już wspomniany w mojej odpowiedzi @jfredsilva.
Sauvik Dolui


Pracuj dla mnie. Dzięki
Nikhil Chaurasiya

125

Wyczyszczenie folderu kompilacji rozwiązało problem. Mam nadzieję, że to komuś pomoże!

(Przytrzymując klawisz Alt : Produkt> Wyczyść folder kompilacji )


1
YA YA YA, naprawiono problem: D
Abo3atef,

1
To zadziałało po zaktualizowaniu do korzystania z Cocoapods i .xcworkspace.
John the King

3
Jest to konieczność po aktualizacji do Cocoapods v1.0.0
Anconia

Dodam tylko, że to jedyna rzecz, która rozwiązała ten problem po aktualizacji do Cocoapods v1.0.0. Żadna z pozostałych odpowiedzi SO nie zadziałała.
Andy Rice

Pracowałem, jestem taki szczęśliwy
anavarroma

33

Wypróbowałem wszystkie inne wymienione tutaj rozwiązania. Cóż, przeportowałem swój projekt ze Swift 1.2 do Swift 2.0. Aplikacja utknęła nawet po zgłoszeniu wielu błędów debugowania i uruchamiania usług 0.

rozwiązanie: Dzieje się tak z powodu kompilacji frameworka.

Cel aplikacji -> Fazy kompilacji -> Osadzane struktury.

Dlatego zaznacz kopię tylko podczas instalacji. Wyczyść projekt i uruchom go!

wprowadź opis obrazu tutaj


Czy możesz wyjaśnić, jak „Kopiuj tylko podczas instalacji” rozwiązuje problem?
sethfri

@ sethfri: "Kopiuj tylko podczas instalacji", aby określić, że faza kompilacji kopiuje pliki tylko w kompilacjach instalacyjnych produktu. developer.apple.com/library/mac/recipes/…
AG

3
Rozumiem, co oznaczają słowa „Kopiuj tylko podczas instalacji”. Pytam, jak to rozwiązuje problem, z którym boryka się autor pytania.
sethfri

28

To zostało już rozwiązane. Problem został spowodowany przez bibliotekę ShareKit dodaną przez CocoaPods ze względu na kompatybilność. Po usunięciu biblioteki i całego związanego z nią kodu aplikacja została pomyślnie uruchomiona w symulatorze. Polecam sprawdzić dziennik systemowy, aby uzyskać więcej informacji na temat problemu, ponieważ wskazał mi właściwy kierunek (podając nazwę biblioteki będącej w konflikcie).


Właśnie dodałem shareKit i mam ten sam problem.
dirkoneill

24
Jeśli to pomoże każdemu: Możesz uzyskać dostęp do dziennika systemowego, wpisując Console w Spotlight.
Nate Cook

Dla mnie był to MixpanelAppExtension
villy393

Dzięki, to mi pomogło. XCode 7.3.1 i mój dziennik pokazał "ErrorDescription = Nie można skopiować na stałe". Ustawiałem wersję, ale nie numer kompilacji w Target -> General -> Identity. Gdy dodałem wartość dla Build, problem zniknął.
William Smith

Aby sprawdzić dziennik systemowy, wypróbuj to polecenie w Terminalu: tail -f /var/log/system.logiOS Simulator drukuje bezpośrednio na stdout, więc możesz zobaczyć logi pomieszane z logami systemowymi.
vhong

16

W przypadku, gdyby ktoś miał ten problem w połączeniu ze strąkami kakao, te kroki pomogły mi rozwiązać ten błąd (po kilku godzinach):

  • biegać pod cache clean
  • z uruchomienia SRC_ROOT rm -rf Pods(opcjonalnie rm Podfile.lock)
  • Kliknij aplikację Symulator , kliknij Symulator -> Zresetuj zawartość i ustawienia ...
  • Idź do Xcode, na pasku menu kliknij Produkt -> Wyczyść (lub kliknij Shift + Command + K) .To będzie wyczyścić projekt Xcode.
  • Utwórz nową powłokę terminala (z paska menu kliknij opcję Shell -> New Window)
  • biegać rm -rf ~/Library/Developer/Xcode/DerivedData/

... następnie spróbuj zbudować i uruchomić swój projekt.

Uwaga: SRC_ROOT można znaleźć, wchodząc do Nawigatora , klikając projekt, ponownie klikając projekt z listy projektów i celów , przechodząc do Ustawień kompilacji , przewijając całą drogę do samego dołu do Sekcji zdefiniowanej przez użytkownika i SRC_ROOT będzie oznaczona jako PODS_ROOT. Weź to i skopiuj dosłownie do terminala i przejdź do kroku 2 z powyższej listy.

Mam nadzieję, że to pomoże.


2
Zrobiło to. Dziękuję Ci! Naprawdę powinna być akceptowana odpowiedź.
Dan Loewenherz

To rozwiązało mój problem! Zdecydowanie powinna to być akceptowana odpowiedź!
Victor Oliveira Antonino,

15

Pozbywam się problemu podanymi krokami dla symulatora

1. Droga

  1. Zresetuj zawartość i ustawienia symulatora .
  2. Oczyść swój projekt przez Cmd + Shift + K .
  3. Wyczyść dane pochodne .
  4. Ostatnia, ważniejsza, zmień identyfikator pakietu na „com.twojafirma.nazwa projektu”, np. „Com.facebook.Facebook”

2. Droga

Możesz być tylko podaną linią, to działa dla mnie

Ostatnia, ważniejsza, zmień identyfikator pakietu na „com.twojafirma.nazwa projektu”, np. „Com.facebook.Facebook”

Dzięki i miłego programowania.


Masz na myśli cmdzamiast win? ;) (A może używasz klawiatury Windows.)
JeroenJK

@JeroenJK Tak, jego Cmd.
Dharmbir Singh,

Wow, zmiana identyfikatora pakietu to ta, która w końcu zadziałała. Dzięki!
ArtSabintsev

6

Może być związany z tym problemem: „Ta aplikacja zawiera rozszerzenie aplikacji z niedozwolonym identyfikatorem pakietu”

Musiałem sformatować identyfikatory pakietów dla mojej aplikacji i rozszerzenia w następujący sposób:

com.company.AppName
com.company.AppName.Extension

To samo tutaj. Zmieniłem identyfikator pakietu, ponieważ rozszerzenie (widżet) się nie wyświetlało i to spowodowało. Musiałem obniżyć wersję rozszerzenia z 9.2 do 8.2 i zmienić pakiet, jak wspomniano powyżej.

Dzięki, dokładnie mój problem!
Andres

5
  1. Najpierw „Zresetuj zawartość i ustawienia”
  2. Jeśli nie podałeś numeru kompilacji, wypełnij go i uruchom.

To rozwiązane dla mnie.


4

Jeśli zmienisz nazwę dostarczonej klasy, InterfaceControllerustaw ją domyślnie podczas uruchamiania nowego projektu. Ta klasa jest przywoływana w sekcji Info.plistpod kluczem RemoteInterfacePrincipalClass. W moim przypadku otrzymałem błąd wspomniany przez OP, dopóki nie naprawiłem tam nazwy klasy (patrz zrzut ekranu).

Info.plist: ustaw klasę główną


To naprawdę pomogło! Dzięki!
Lonkly

2

Jeśli jesteś tutaj po problemach z integracją z WatchOS 2.0, przejdź do - ~/Library/Logs/CoreSimulator/[Device UDID]/system.loga jeśli powie coś takiego, WatchKit 2 app has frameworks; that's not allowed.kliknij poniższy link.

http://zyafa.me/blog/watchos-2-and-embedded-frameworks


1
Dziękuję za wskazanie mi pliku dziennika symulatora. W moim przypadku plik dziennika pod adresem ~/Library/Logs/CoreSimulator/CoreSimulator.logujawnił, że mój powiązany framework nie ma CFBundleIdentifierw swoim Info.plist
berbie

framework nie miał CFBundleIdentifier w swoim Info.plist: otrzymuję również to, jakie jest rozwiązanie? nie stosując na watchkit lub watchOS
Abhishek Thapliyal

1

Jestem użytkownikiem adMob i rozwiązałem problem z włączeniem opcji „Kopiuj tylko podczas instalacji” w miejscu docelowym aplikacji -> Fazy kompilacji -> Osadzane struktury.


1

Mam ten sam problem po zlokalizowaniu mojej aplikacji. Szczególnie Info.plist. Wygląda na to, że miałem pusty CFBundleShortVersionStringw InfoPlist.strings, po naprawieniu, że symulator zaczął działać poprawnie.


To też był mój problem. Jeśli widzisz to, spróbuj usunąć wszystkie klucze, które nie wymagają lokalizacji, z plików InfoPlist.strings. W moim przypadku usunięcie kluczy poniżej naprawiło wszystko: CFBundleName CFBundleShortVersionString CFBundleVersion
lazarev

1

Problem ten napotkałem, dodając odwołanie do folderu o nazwie „Zasoby”.

Jeśli nadam mu inną nazwę, to działa!


1
Ten rozwiązał mi podobny problem! Osadzałem dylib i spowodowało to tajemniczy błąd instalacji „nie miał identyfikatora CFBundleIdentifier w swoim Info.plist”. Po zmianie folderu Resources na coś innego zaczęło działać ponownie
Sagi Iltus.

Dwie pieczenie na jednym ogniu;)
Łoś.

1

Istnieje wiele przyczyn, które mogą powodować ten błąd. Najlepszą ogólną odpowiedzią jest przeszukanie dziennika konsoli CoreSimulator, ponieważ symulator rejestruje podstawowy problem, gdy wyświetla ten komunikat.


1

Dzięki za wskazanie tego @Miki i uznanie dla Ciebie. Miałem ten sam problem, co Ty wczoraj (i kilka dni temu dodałem ShareKit 3.0.0 z CocoaPods do aplikacji). Podejrzewałem, że ShareKit daje mi ten problem, ale teraz mogę być pewien, która biblioteka jest przyczyną tego problemu. Oto, co znalazłem w moim dzienniku (jeśli może to przynieść korzyści innym):

Error Domain = LaunchServicesError Code = 0 "Operacja nie mogła zostać ukończona. (LaunchServicesError error 0.)" UserInfo = 0x7fa836097aa0 {Error = PackageInspectionFailed, ErrorDescription = Nie udało się załadować Info.plist z pakietu pod ścieżką / Users / {UserName} / Library / Developer / CoreSimulator / Devices / 99FEB34E-6F00-4EFA-861A-A6985AFE96D8 / data / Library / Caches / com.apple.mobile.installd.staging / temp.X7eead / extract / {AppName} .app / Frameworks / LiveSDK. struktura}


1
ze swojego dziennika, skąd możesz wiedzieć, że ShareKit powoduje błąd?
chipbk10

1
mam to samo w moim dzienniku, ale usunięcie symulatorów i ich ponowne dodanie nie pomaga ... jak naprawiłeś błąd?
Amitay

1

Jeśli zainstalowałeś jakiekolwiek biblioteki przy użyciu, CocoaPodsgdy XCode był otwarty, wszystko, co musisz zrobić, to zamknąć XCode i usunąć bibliotekę z Podpliku, uruchomić polecenie pod install, które odinstaluje tę bibliotekę. następnie ponownie zainstaluj bibliotekę. Upewnij się, że XCode jest zawsze zamknięty podczas instalowania i odinstalowywania bibliotek.


0

Miałem dokładnie ten sam problem i był to ShareKit.

Na symulatorze miałem „Error Domain = LaunchServicesError Code = 0”.

Na urządzeniu iPhone6 ​​miałem komunikat „Instalacja aplikacji nie powiodła się. Nie można sprawdzić pakietu aplikacji”.

Kiedy usunąłem ShareKit, zadziałało.


0

Miałem ten problem, gdy dodałem cel Apple Watch do mojej aplikacji i przypadkowo usunąłem plik InterfaceController.m. Dodanie z powrotem pliku w miejscu docelowym rozwiązało problem.


0

Są różne przyczyny, które mogą to powodować. Spojrzenie w konsolę może dać ci wskazówkę.

W moim przypadku - problemem było rozszerzenie zbudowane przed zmianą nazwy produktu. Xcode nie wyczyścił starego, a następnie zestresował dwa rozszerzenia z tym samym identyfikatorem pakietu.

(Usunięcie folderu kompilacji rozwiązało mój konkretny problem).


0

W moim przypadku problem pochodzi z zestawu ikon dodanego z brakującymi niektórymi obrazami. Raz wymieniłem zestaw ikon na inny i odinstalowałem aplikację w symulatorze; Mogłem go ponownie uruchomić.


0

Usunąłem wszystkie moje pliki pod i zastąpiłem je wszystkie, wydaje mi się, że problem polegał na tym, że rama śrub była stara i spowodowała ten błąd. Zrobiłem wyczyść i zresetowałem zawartość i teraz wszystko jest w porządku.


0

Nie dodawaj struktury Google Maps do sekcji osadzonej biblioteki, to rozwiązało moją przerwę w kompilacji.


Usunięcie osadzonego frameworka, który nie był konieczny, rozwiązało również mój problem
manman

0

Wystąpił ten błąd podczas tworzenia aplikacji na Apple Watch po dodaniu do Info.plist: „Ustawienia zabezpieczeń transportu aplikacji” i „Zezwalaj na ładunki z arbitrażu” = TAK. (W aplikacji WatchKit, w rozszerzeniu WatchKit jest dobre !!) Usunięcie tych dwóch wierszy nadal działa.

wprowadź opis obrazu tutaj


0

U mnie problem występuje, ponieważ dodałem mój framework ( GoogleMobileAds.frameworkw moim przypadku) do wbudowanych plików binarnych , a nie połączonych struktur i bibliotek .

Dla Twojej informacji AdMob poleca Ci korzystanie z Add Files to "Your Project"menu w Xcode, ale byłem zbyt leniwy, aby zastosować się do instrukcji.


0

Miałem ten problem podczas próby uruchomienia testów UI w projekcie zawierającym AWS Cognito.

Oto jak to rozwiązałem.

  1. Wybierz cel testu interfejsu użytkownika.
  2. Kliknij sekcję Fazy budowy.
  3. Kliknij znak plus, aby dodać fazę Kopiuj pliki Dodaj fazę kopiowania plików
  4. W fazie Kopiuj pliki zmień miejsce docelowe na Struktury (zobacz ostatni obraz)
  5. Uderz w plus poniżej fazy Kopiuj pliki.
  6. Wybierz strukturę, dla której otrzymujesz błąd i naciśnij przycisk Dodaj (Twój prawdopodobnie nie będzie pierwszym elementem w hierarchii projektu). Wybierz Framework do skopiowania Powinno to wyglądać tak. Ostateczny wynik
  7. Powtórz kroki 5 i 6 dla wszystkich platform, co spowoduje błąd.
  8. Przeprowadź testy.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.