„Pliku„ MyApp.app ”nie można otworzyć, ponieważ nie masz uprawnień do wyświetlania go podczas uruchamiania aplikacji w Xcode 6 Beta 4


273

Ilekroć próbuję uruchomić aplikację w Xcode 6 Beta 4, pojawia się błąd:

The file "MyApp.app" couldn't be opened because you don't have permission to view it.

Ten błąd pojawia się bez względu na to, na który symulator lub urządzenie celuję.

Próbowałem:

  • Usuwanie wszystkich danych pochodnych z Organizatora w Xcode
  • Naprawianie uprawnień na moim dysku
  • Ręczne podnoszenie uprawnień wbudowanej aplikacji MyApp.app
  • Ponowne uruchamianie komputera

Czy ktoś jeszcze napotkał ten problem i znalazł rozwiązanie?

Zrzut ekranu


1
Otrzymuję ten sam problem z XCode 6.1. Początkowo problem dotyczył tylko symulatora, teraz, po przejściu kilku wskazówek w tym poście, mam ten sam błąd podczas uruchamiania mojego telefonu docelowego.
Bamaco,

1
Postępowałem zgodnie z rozwiązaniem @YuAn. Działa bardzo dobrze w symulatorze. Dzięki Ale kiedy próbuję zbudować go na urządzeniu, wciąż pojawia się komunikat „Nie mam pozwolenia, aby go zobaczyć”. Plik myapp.app w katalogu produktów w xcode, a także w katalogu danych pochodnych jest zablokowany nawet po próbie kompilacji po usunięciu zawartości danych pochodnych.
Srinivasan N

4
Kolejny (głupi) sposób na wywołanie tego problemu: Skompiluj aplikację z tylko zasobami i bez plików źródłowych. Nie pytaj mnie, skąd to wiem :)
Krumelur,

4
Produkt> Wyczyść, rozwiąż to dla mnie
mazorati 30.09.16

W moim przypadku żaden z nich nie działał !! Po usunięciu pliku pilst z Xcode i ponownym dołączeniu do projektu działa to jak urok! Mam nadzieję, że wam pomogę!
Ravi

Odpowiedzi:


252

Używam Xcode6 GM. Napotkałem ten sam problem. Zrobiłem to, aby przejść do Ustawienia kompilacji -> Opcje kompilacji. Następnie zmieniłem wartość „Kompilatora dla C / C ++ / Objective-C” na Domyślny kompilator.wprowadź opis zdjęcia tutaj


146

Masz też problem z urządzeniem DEVICE (nie tylko z symulatorem)?


Inne rozwiązania naprawiły to tylko dla mnie na symulatorze, a nie na urządzeniu.

Dla mnie ten problem wystąpił (w Xcode 6), gdy próbowałem zmienić główne właściwości info.plist podczas próby zmiany nazwy mojej aplikacji.

W info.plist zmieniłem Executable Filenazwę na inną niż domyślna ${EXECUTABLE_NAME}...

Myliłem to pole z polem, które zmienia nazwę aplikacji pod ikoną na trampolinie.


10
W moim przypadku zadziałało, dziękuję. Zmieniłem inne podobne pola w moim pliku <appname> -Info.plist, a kiedy zmieniłem plik wykonywalny z powrotem na $ {EXECUTABLE_NAME}, jak sugerowałeś, utworzył i uruchomił.
Slowburner

Dzięki .. Tak było z moją sprawą
Bala Wisznu

Wielkie dzięki @Albert Renshaw, odpowiedź rozwiązała mój problem. Szukam rozwiązania tego od dwóch dni.
Nilesh Kikani

Ten sam problem, nazwa pola to „Wyświetlana nazwa pakietu” do zmiany nazwy pod ikoną
WebOrCode

1
Doprowadziło mnie to do mojego rozwiązania, które polegało na tym, że dostałem dodatkową Info.plist, kiedy dołączyłem do kodu źródłowego bibliotekę zewnętrzną, a oni mieli Info.plist w folderze grupy zasobów. Usunięcie tej dodatkowej Info.plist rozwiązało mój problem.
chadbag

145

W Xcode wykonaj następujące czynności

Okno -> Organizator -> Projekty -> Aplikacja z problemem -> przycisk Usuń w danych pochodnych.

Następnie wyczyściłem projekt i voila

Pracuje


Postępowałem zgodnie z rozwiązaniem @YuAn. Działa bardzo dobrze w przypadku symulatora, ale kiedy próbuję zbudować go na urządzeniu, wciąż pojawia się komunikat „Nie mam uprawnień, aby go wyświetlić”. Plik myapp.app w katalogu produktów w xcode, a także w katalogu danych pochodnych jest zablokowany nawet po próbie kompilacji po usunięciu zawartości danych pochodnych. Masz pomysł, co poszło nie tak?
Srinivasan N

to zadziałało dla mnie, ALE tak się dzieje. Nie mogę ciągle delete pochodzą dane za każdym razem Chcę uruchomić aplikację w symulatorze ...
zumzum

Mam do czynienia z tym samym problemem, wypróbowałem różne rozwiązania, ale dla mnie nie zadziałało. Pomoc zostanie doceniona
Giriraj.Mulay


45

Naprawiłem to, czyszcząc folder kompilacji. Właśnie poszedłem do menu „Produkt” i Option + kliknij „Wyczyść”. Następnie problem został rozwiązany.


30

Wystąpił problem z Info.plist projektu. Stworzyłem nowy projekt o tej samej nazwie w Xcode 6 beta 4, a następnie zastąpiłem Info.plist prawdziwego projektu nowym. Projekt został następnie zbudowany i działał poprawnie.

Spójrz na różnicę, wygląda na to, że plist mógł się jakoś pomieszać z plistem na placu zabaw. Identyfikator pakietu to „com.apple.dt.playground.iOS-18300-13”, a nazwy plików wykonywalnych i pakietów to „iOS” wraz z innymi dziwactwami.

To jest pełna różnica w przypadku, gdy ktoś potrzebuje jej w celach informacyjnych:

        <key>CFBundleDevelopmentRegion</key>
        <string>en</string>
        <key>CFBundleExecutable</key>
-       <string>iOS</string>
+       <string>${EXECUTABLE_NAME}</string>
        <key>CFBundleIdentifier</key>
-       <string>com.apple.dt.playground.iOS-18300-13</string>
+       <string>com.myCompany.${PRODUCT_NAME:rfc1034identifier}</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleName</key>
-       <string>iOS</string>
+       <string>${PRODUCT_NAME}</string>
        <key>CFBundlePackageType</key>
-       <string>AAPL</string>
+       <string>APPL</string>
        <key>CFBundleShortVersionString</key>
        <string>1.0</string>
-       <key>CFBundleSupportedPlatforms</key>
-       <array>
-               <string>iPhoneSimulator</string>
-       </array>
+       <key>CFBundleSignature</key>
+       <string>????</string>
        <key>CFBundleVersion</key>
        <string>1</string>
-       <key>DTPlatformName</key>
-       <string>iphonesimulator</string>
-       <key>DTSDKName</key>
-       <string>iphonesimulator8.0</string>
-       <key>LSBackgroundOnly</key>
-       <true/>
        <key>LSRequiresIPhoneOS</key>
        <true/>
+       <key>UIMainStoryboardFile</key>
+       <string>Main</string>
        <key>UIRequiredDeviceCapabilities</key>
        <array>
                <string>armv7</string>
        </array>
+       <key>UISupportedInterfaceOrientations</key>
+       <array>
+               <string>UIInterfaceOrientationPortrait</string>
+               <string>UIInterfaceOrientationLandscapeLeft</string>
+               <string>UIInterfaceOrientationLandscapeRight</string>
+       </array>
 </dict>
 </plist>

tak, miałem podobny problem. Plik Info.plist był w formacie binarnym. Musiałem to przekonwertować
Luca Torella

28

Miałem ten sam błąd w Xcode 8.2. Powód, dla którego się dowiedziałem, jest inny Info.plist jest dodawanie do mojego projektu podczas dodawania biblioteki (ręczne kopiowanie).

Tak więc Xcode zaczyna się mylić, wybierając prawidłową listę Info.plist .

Właśnie usunąłem Info.plist z dodanej biblioteki.

Następnie działa dobrze bez żadnego powiadomienia o pozwoleniu.


Możesz także zmienić nazwę Info.plist na FRAMEWORK_NAME_HEREInfo.plist
Jeremy Kelleher

To samo tutaj, kopiowanie z innego projektu
Firas Shrourou

To właśnie był mój problem. Dodałem kolejny folder szybkich plików, w którym był plik plist. Usunąłem ten plik Plist i wszystko jest w porządku .. Dziękuję!
Lkabo,

17

Sprawdź, czy zmieniłeś plik wykonywalny => $ (EXECUTABLE_NAME) na inną nazwę. Jeśli zmieniłeś tę nazwę, to pokazuje ten błąd. Zamień go na $ (EXECUTABLE_NAME).


Tak, przydarzyło mi się, gdy próbowałem zmienić nazwę aplikacji. Deweloper sezonu tak po prostu wszedł do listy bezmyślnie i zmienił „Plik wykonywalny”, kiedy w rzeczywistości mam zamiar zmienić „Nazwę pakietu”
MobileMon

Naprawiłem to dla mnie. Stało się to po zmianie nazwy mojego projektu. Dzięki.
emiliomaryna

14

Produkt -> Wyczyść (Shift Command K) naprawił to dla mnie


Przypominamy, że czasami najprostszym rozwiązaniem jest to, które działa.
Pescolly,

W Xcode 7.2.1 wymagane było czyste i ponowne uruchomienie Xcode. Samo czyszczenie doprowadziło mnie do „nieznanego błędu” bez próby kompilacji.
Tommy

13

Mój Boże!! Spędziłem godziny, aby rozwiązać ten problem.

Na XCode 7.3 miałem projekt bez problemów.

Błąd, który popełniłem

Właśnie dodałem foldery fizyczne i przeniosłem do nich moje pliki, problem zaczął się.

Próbowałem wszystkiego

  • Domyślny kompilator
  • Oczyść i buduj
  • Zresetuj symulator i uruchom ponownie symulator, Xcode, iPhone nawet Mac
  • Zaktualizowano Info.plist
  • Usuwanie danych pochodnych
  • Edycja uprawnień do folderu projektu
  • Sprawdzanie moich architektur

nic nie działało :(

Jak rozwiązałem

Chciałem stworzyć nowy projekt, a następnie usunąłem te fizyczne foldery, które dodałem, czystą kompilację i TAK !!

To działa!!

wprowadź opis zdjęcia tutaj


1
Tak, to też było dla mnie.
yeahdixon,

to mi pomogło. ale myślałem, że mogę użyć odwołania do folderu. dziwne.
user1105951

13

Spróbuj „cmd + shift + k”, aby wyczyścić projekt i odbudować. Przynajmniej mi się udało


11

Miałem podobny problem (xCode 6.2) dla pobranego przykładowego kodu. Próbowałem zestaw Executable Namedo Default in Info.plistale to nie działało.

Zamiast tego zmień Kompilator dla C / C ++ / Objective-C na Domyślny kompilator (Apple LLVM 6.0) zamiast Nieobsługiwanego kompilatora (com.apple.compilers.llvmgcc42) dla projektu.

Zrzut ekranu


@iOSRocks: Witaj kolego!
Jayprakash Dubey,

10

1) Idź najpierw Opcje budowania.

2) Następnie zmieniłem wartość „Kompilatora dla C / C ++ / Objective-C” na Domyślny kompilator.

czyste i działające :-)


1
Aby to wyjaśnić: 1. Przejdź do Ustawień kompilacji (wybierz Wszystkie i połączone ) 2. Wyszukaj opcje kompilacji 3. Ustaw kompilator dla C / C ++ / Objective-C na domyślny kompilator
nburk

Dlaczego ludzie głosują na tę kopię najwyżej ocenianej odpowiedzi?
Kiran

10

Czasami otwarcie starego projektu w nowej wersji Xcode otrzyma tę wiadomość.

Przejdź do Nawigatora problemów i postępuj zgodnie ze wskazówkami ostrzegawczymi „Aktualizuj do przywróconych ustawień”.

Bum, magia!


10

Przekonałem się, że zmiana mojego kompilatora na LLVM 6.0 w Opcjach kompilacji była dla mnie wystarczająca (xcode 6.1)

wprowadź opis zdjęcia tutaj


10

Mam ten sam błąd na moim Xcode 6.1.1 dla projektu pobranego z gitHub, który został popełniony 4 lata temu. Dla mnie ustawienie Architektów na wartość domyślną działały Standardowe architektury (armv7, arm64) i Kompilator dla C / C ++ / Objective-C na Domyślny kompilator w Ustawieniach budynku .


9

Ostatnio spotkałem ten sam problem z uruchomieniem starego projektu (początkowo utworzonego w Xcode 4.x) w Xcode 6.0.1.

Rozwiązałem problem, zmieniając ustawienie Architektury w ustawieniach budynku na wartość domyślną, czyli „ Standardowe architektury (armv7, arm64) ”.

Mam nadzieję, że to może pomóc każdemu, kto ma podobne problemy :)


Ta odpowiedź powinna być oznaczona jako poprawna @drewag
Fede Cugliandolo

wygląda na to, że kryją się za tym tajemniczym komunikatem o błędzie różne problemy, w każdym razie to właśnie rozwiązało mój problem z XCode 6.1
Fabio Napodano

9

Wystąpił ten błąd w przypadku wielu moich starszych projektów, które wychodzę z szafki w celu aktualizacji. Wygląda na to, że używanie Xcode 6 ze starszym kodem wydaje się to z jakiegoś powodu powodować.

Naprawiłem to we wszystkich projektach, z którymi to zrobiłem:

  1. Usuń dane pochodne
  2. w produkcie: zrób porządek
  3. przejdź do Ustawienia kompilacji w projekcie Cel i przejdź do Opcje kompilacji i zmień wartość „Kompilatora dla C / C ++ / Objective-C” na „ Domyślny kompilator ”.

9

Miałem ten sam problem w moim projekcie. Później okazało się, że plik innej firmy ( fmdb dla SQLite) użyty w projekcie zawierał Info.plist .

Po prostu usunięcie pliku Info.plist zadziałało dla mnie!

Info.plist


Pracowałem też dla mnie.
mkll,

9

Moja aplikacja działała poprawnie na XCode 9.4, ale kiedy otworzyłem swój projekt w XCode 10, miałem ten problem. Dla mnie problemem było ustawienie kompilacji. Odpowiedź znalazłem na tej stronie https://forums.developer.apple.com/thread/112141 .

W skrócie przejdź do Plik> Ustawienia obszaru roboczego…> Kompiluj system i zmień go na „Kompilacja starszego systemu”


8

W moim przypadku po prostu zmieniam nazwy Bundle Namei Executable filewartości info.plisttak samo jak nazwa projektu. To zadziałało dla mnie.


8

Próbowałem wszystkich wymienionych odpowiedzi i żadna z nich nie była przydatna. Problem był spowodowany istnieniem innego pliku plist połączonego z submodułu za pośrednictwem cocoapods. Na szczęście był to mój własny moduł, więc właśnie usunąłem ten plist z projektu submodułu i ponownie zainstalowałem zasobniki.

rozwiązanie

Później zrozumiałem, że kluczem do problemu był ten drugi list: po prostu info.plist. Możesz zmienić nazwę pliku i ponownie połączyć go poprzez sourcessekcję submodułu

Ten drugi plik listy miał unikalną nazwę, więc Xcode nie miał się frustrować. Nawet moje ustawienia docelowe wskazywały na główny plist, a nie na info.plist. Wygląda na to, że Xcode zwraca szczególną uwagę na tę nazwę

Błąd odtworzony w Xcode 6.4 i Xcode 7.0


Podobna rzecz mi się przydarzyła. Mój Info.plist nie został poprawnie skonfigurowany, więc XCode wziął to, co pierwszy Info.plistznalazł w folderze projektu, który należał do pewnej niepowiązanej zależności.
Ohad Schneider,

dzięki Bogu, właśnie zaoszczędziłeś mi godzin bezsensownego debuggowania Xcode
Alex

6

Miałem ten podobny problem. Jakoś moja wartość klucza pliku wykonywalnego się pomieszała. Po prostu zmień go z powrotem na $ {EXECUTABLE_NAME} (w ramach Twojego projektu> Informacje). Pracował dla mnie!


1
Jedną rzeczą wartą uwagi jest to, że moja została ustawiona na $ (EXECUTABLE_NAME), a aktualizacja jej na $ {EXECUTABLE_NAME} rozwiązała problem.
Eric

5

Nie wiem, czy problem jest powiązany, ale może to być rozwiązanie dla każdego, kto ciągnie za włosy, jak ja.

W moim przypadku mam projekt z wieloma celami. Każdy cel jest dostosowanie tego projektu bazowego, który jest Cocoa Touch Static Libraryi cele, Applications. Nawet jeśli mainplik zostanie dodany do kompilacji biblioteki, ale nie w każdym celu, pojawia się ten komunikat o błędzie. Więc co zrobiłem? Ręcznie dodałem mainplik do każdego celu w Compile Sourcessekcji i bingo, wszystko w porządku.


Dziękuję, to bardzo pomogło.
JakeP,

5

Dla mnie błąd był w pliku .plist przy kluczu CFBundleExecutable . Zmieniłem nazwę pliku wykonywalnego, usuwając spację między dwoma słowami. (Np .: z „Wild Racer” na „WildRacer”). Zajęło 1 dzień, aby to zauważyć !!

Xcode jest bardzo nieprzydatny w debugowaniu!


4

W moim przypadku main.m zawierający funkcję main (...) nie był zawarty na liście „Compile Sources” w „Build Phases”. Aby sprawdzić, czy tak jest, przejdź do Fazy kompilacji i sprawdź, czy plik main.m znajduje się na liście „Kompiluj źródła”.


1
Nie wiem, jak to odkryłeś, i to nie był mój dokładny problem, ale doprowadził mnie do rozwiązania, więc DZIĘKUJĘ !!
Ri_

3

Tym, co rozwiązało to dla mnie, było ustawienie Buduj aktywną architekturę tylko od Nie na Tak .


3

z kodem X 6.3.2

[Ustawienia kompilacji] Opcje. [Wszystkie] - [Opcje kompilacji] - [Kompilator dla C / C ++ / Objective-C] - [Domyślny kompilator (Apple LLVM 6.1)]

Następnie przebuduj projekt i będzie działał poprawnie.


2

W moim przypadku pomogło to tylko zamknąć Xcode, naprawić uprawnienia za pomocą Narzędzia dyskowego. Dopiero po ponownym uruchomieniu działało to jak urok.


Miałem ten problem po uaktualnieniu OSX dzisiaj. To zajęło mniej niż minutę.
tonyedwardspz

2

Ponieważ miałem dziś do czynienia z tym problemem i żadna z odpowiedzi nie pomogła mi szczególnie w moim przypadku. Po wielu godzinach próbowałem rozwiązać problem.

Właściwie podczas pracy przez pomyłkę zmieniłem nazwę mojego „ Main.storyboard ” na „ .storyboard ” i zmieniłem go z powrotem na „ Main.storyboard ” rozwiązał mój problem.

ROZWIĄZANIE (Jak na mój problem) : Być może zmieniłeś nazwę dowolnego pliku, z powodu którego xcode nie mógł go załadować i podniósł problem. Na przykład: jak wspomniano powyżej, przypadek zmiany nazwy „ pliku wykonywalnego
Możliwy obszar problemu: Może to być kilka ostatnio używanych plików.

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.