«Файл« MyApp.app »не может быть открыт, потому что у вас нет разрешения на его просмотр» при запуске приложения в Xcode 6 Beta 4


273

Всякий раз, когда я пытаюсь запустить свое приложение в Xcode 6 Beta 4, я получаю сообщение об ошибке:

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

Эта ошибка появляется независимо от того, на какой симулятор или устройство я нацеливаюсь.

Я пытался:

  • Удаление всех полученных данных из органайзера в Xcode
  • Восстановление разрешений на моем диске
  • Ручное повышение разрешений встроенного MyApp.app
  • Перезагрузка моего компьютера

Кто-нибудь еще сталкивался с этой проблемой и нашел решение?

Скриншот


1
Я получаю ту же проблему с XCode 6.1. Сначала проблема была только в симуляторе, теперь, после некоторых указаний в этом посте, у меня та же ошибка при запуске моего целевого телефона.
Бамако

1
Я следовал за решением @YuAn. Это работает очень хорошо для симулятора. Спасибо. Но когда я пытаюсь собрать его на устройстве, я все равно получаю сообщение «У меня нет разрешения на его просмотр». Файл myapp.app в каталоге products в xcode, а также в каталоге производных данных отображается заблокированным даже после попытки сборки после удаления содержимого производных данных.
Шринивасан N

4
Еще один (глупый) способ вызвать эту проблему: скомпилировать приложение только с ресурсами и без исходных файлов. Не спрашивайте меня, откуда я это знаю :)
Krumelur

4
Продукт> Чистый решить это для меня
мазорати

В моем случае ничего из этого не сработало !! Как только я удаляю файл pilst из Xcode и снова присоединяю к проекту, он работает как шарм !! Надеюсь, помочь вам, ребята!
Рави

Ответы:


252

Я использую Xcode6 GM. Я столкнулся с той же проблемой. Что я сделал, так это зашел в Настройки сборки -> Параметры сборки. Затем я изменил значение «Компилятор для C / C ++ / Objective-C» на Компилятор по умолчанию.введите описание изображения здесь


146

Возникли проблемы с устройством (не только симулятор)?


Другие решения только исправили это для меня на симуляторе, а не на устройстве.

Для меня эта проблема возникла (в Xcode 6), когда я пытался изменить основные свойства info.plist при попытке изменить имя моего приложения.

В info.plist я изменил Executable Fileимя на что-то отличное от значения по умолчанию ${EXECUTABLE_NAME}...

Я принял это поле за поле, которое меняет название приложения под значком на трамплине.


10
В моем случае это сработало, спасибо. Я изменял другие подобные поля в своем файле <appname> -Info.plist, и как только вы изменили исполняемый файл обратно на $ {EXECUTABLE_NAME}, как вы предложили, он собрал и запустил.
Slowburner

Спасибо .. То же самое было в моем случае
Бала Вишну

Огромное спасибо @Albert Renshaw, твой ответ решил мою проблему. Я ищу решение для этого с последних двух дней.
Нилеш Кикани

Та же проблема, имя поля «Отображаемое имя
пакета

1
Это привело меня к моему решению, которое заключалось в том, что я получил дополнительный Info.plist, когда я включил источник для внешней библиотеки в свой код, и у них был Info.plist в их папке группы ресурсов. Удаление этого дополнительного Info.plist решило мою проблему.
Чедбаг

145

В Xcode сделайте следующее

Окно -> Органайзер -> Проекты -> Приложение с проблемой -> кнопка удаления в Производных данных.

Затем я очистил проект и вуаля

работает


Я следовал за решением @YuAn. Это работает очень хорошо для симулятора, но когда я пытаюсь собрать его на устройстве, я все равно получаю сообщение «У меня нет разрешения на его просмотр». Файл myapp.app в каталоге products в xcode, а также в каталоге производных данных отображается заблокированным даже после попытки сборки после удаления содержимого производных данных. Любая идея, что пошло не так?
Шринивасан N

это сработало для меня, НО это продолжает происходить. Я не могу постоянно удалять производные данные каждый раз, когда хочу запустить приложение в симуляторе ...
zumzum

Я столкнулся с той же проблемой, пытался найти
другое


45

Я исправил это, очистив папку сборки. Просто зашел в меню «Продукт» и Option + нажмите «Очистить». После этого проблема была решена.


30

Возникла проблема с Info.plist проекта. Я создал новый проект с тем же именем в Xcode 6 beta 4, а затем заменил Info.plist реального проекта новым. Затем проект построен и работает нормально.

Посмотрите на различия, кажется, что список может каким-то образом смешаться с списком игровых площадок. Идентификатор пакета был «com.apple.dt.playground.iOS-18300-13», а имена исполняемого файла и пакета были «iOS» вместе с некоторыми другими странностями.

Это полная разница на случай, если кому-то понадобится справка:

        <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>

да, у меня была похожая проблема. Файл Info.plist был в двоичном формате. Пришлось преобразовать это
Лука Торелла

28

У меня была такая же ошибка в Xcode 8.2. Причина, которую я выяснил для меня, еще один Info.plist добавляется в мой проект при добавлении библиотеки (вручную копировать).

Так что Xcode запутался в выборе правильного Info.plist .

Я только что удалил этот Info.plist из добавленной библиотеки.

Тогда он работает нормально без какого-либо разрешения.


Вы также можете изменить имя Info.plist на FRAMEWORK_NAME_HEREInfo.plist
Джереми Келлехер

То же самое здесь, копирование с другого проекта
Firas Shrourou

Это именно то, что было моей проблемой. Я добавил еще одну папку с файлами swift, и там был файл plist. Я удалил этот файл plist и все хорошо .. Спасибо!
Lkabo

17

Убедитесь, что вы изменили исполняемый файл => $ (EXECUTABLE_NAME) на любое другое имя. Если вы изменили это имя, то это показывает эту ошибку. Пожалуйста, замените его на $ (EXECUTABLE_NAME).


Да, со мной произошло, когда я пытался изменить имя приложения. Разработчик сезона так просто рассеянно вошел в plist и изменил «Исполняемый файл», когда на самом деле я хочу изменить «Имя
пакета

Это исправило это для меня. Это случилось после того, как я переименовал свой проект. Спасибо.
Эмилиомарин

14

Product -> Clean (команда shift K) исправил это для меня


Хорошее напоминание, что иногда простое решение - это то, что работает.
Песколли

Чистый и перезапуск XCode требовался здесь под XCode 7.2.1. Одна только очистка привела меня к «неизвестной ошибке» без попыток построить.
Томми

13

Боже мой!! Я потратил часы, чтобы решить эту проблему.

На XCode 7.3 у меня был проект без проблем.

Ошибка я сделал

Я просто добавил физические папки и переместил в них свои файлы, проблема началась.

Я все перепробовала

  • Компилятор по умолчанию
  • Очистить и построить
  • Сброс симулятора и перезагрузка симулятора, Xcode, iPhone и даже Mac
  • Обновлен Info.plist
  • Удаление полученных данных
  • Редактирование разрешения на папку проекта
  • Проверка моей архитектуры

ничего не получалось :(

Как я решил

Я собирался создать новый проект, а затем я просто удалил те физические папки, которые я добавил, чистая сборка и YESS !!

Оно работает!!

введите описание изображения здесь


1
Да, это было для меня тоже.
агадиксон

это помогло мне. но я думал, что могу использовать ссылку на папку. странный.
user1105951


11

У меня была похожая проблема (xCode 6.2) для загруженного примера кода. Я попытался установить , Executable Nameчтобы , Default in Info.plistно это не сработало.

Вместо этого замените компилятор для C / C ++ / Objective-C на компилятор по умолчанию (Apple LLVM 6.0) вместо неподдерживаемого компилятора (com.apple.compilers.llvmgcc42) для проекта.

Скриншот


@iOSRocks: Добро пожаловать, приятель!
Джайпракаш Дубей

10

1) Перейти в первую очередь варианты сборки.

2) Затем изменил значение «Компилятор для C / C ++ / Objective-C» на Компилятор по умолчанию.

чистый и рабочий :-)


1
Чтобы прояснить ситуацию: 1. Перейдите в Настройки сборки (Выбрать все и в сочетании ) 2. Найдите параметры сборки 3. Установите для компилятора для C / C ++ / Objective-C значение по умолчанию
nburk

Почему люди голосуют за эту копию ответа с самым высоким рейтингом?
Киран

10

Иногда открывая старый проект в новой версии Xcode получит это сообщение.

Перейдите к навигатору проблем и следуйте предупреждающей подсказке «Перейти к обновленным настройкам».

Бум, магия!


10

Я обнаружил, что мне достаточно было изменить мой компилятор на LLVM 6.0 в параметрах сборки (xcode 6.1)

введите описание изображения здесь


10

Я получил ту же ошибку на моем Xcode 6.1.1 для проекта, загруженного с gitHub, который был совершен 4 года назад. Для меня установление Архитектур на значение по умолчанию Стандартные архитектуры (armv7, arm64) и Компилятор для C / C ++ / Objective-C в Компилятор по умолчанию в Настройках здания работали.


9

Недавно я столкнулся с той же проблемой для запуска старого проекта (первоначально созданного в Xcode 4.x) в Xcode 6.0.1.

Я исправил проблему, изменив значение « Архитектура в настройках здания» на значение по умолчанию, которое « Стандартные архитектуры (armv7, arm64) ».

Надеюсь, что это может помочь любому, кто получил подобные проблемы :)


Этот ответ должен быть помечен как правильный @drewag
Fede Cugliandolo

похоже, что за этим загадочным сообщением об ошибке стоят разные проблемы, в любом случае это то, что решило мою проблему с XCode 6.1
Фабио Наподано

9

У меня была эта ошибка с рядом моих старых проектов, которые я собираюсь обновить. Кажется, что использование Xcode 6 со старым кодом, кажется, вызывает это по какой-то причине.

Я исправил это во всех проектах, с которыми я сделал это:

  1. Удалить производные данные
  2. в продукте: сделать чистую
  3. перейдите в Настройки сборки в проекте Target и перейдите в Параметры сборки и измените значение «Компилятор для C / C ++ / Objective-C» на « Компилятор по умолчанию ».

9

У меня была та же проблема в моем проекте. Позже обнаружил, что сторонний ( fmdb для SQLite) файл, используемый в проекте, содержал Info.plist .

Простое удаление файла Info.plist сработало для меня!

Info.plist


У меня тоже сработало.
Mkll

9

Мое приложение работало нормально на XCode 9.4, но когда я открыл свой проект в XCode 10, я столкнулся с этой проблемой. Для меня проблема заключалась в настройке сборки. Я нашел ответ на этой странице https://forums.developer.apple.com/thread/112141 .

Вкратце зайдите в File> Workspace Settings…> Build System и измените его на «Legacy Build System»


8

Ну в моем случае, я просто переименовать Bundle Nameи Executable fileзначения info.plistсовпадает с именем проекта. Это сработало для меня.


8

Я перепробовал все перечисленные ответы, и ни один из них не был полезен. Проблема была связана с существованием другого файла plist, связанного с подмодулем через cocoapods. К счастью, это был мой собственный модуль, поэтому я просто удалил этот список из проекта подмодуля и переустановил модули.

решение

Позже я понял, что суть проблемы заключалась в названии второго списка: просто info.plist. Вы можете переименовать файл и связать его через sourcesраздел подмодуля.

Этот второй plist-файл имел уникальное имя, поэтому Xcode не должен был расстраиваться. Даже мои целевые настройки указывали на основной список, а не на info.plist. Похоже, Xcode принимает особые соображения об этом имени

Ошибка, воспроизведенная в Xcode 6.4 и Xcode 7.0


Подобное случилось со мной. Мой Info.plist не был настроен правильно, поэтому XCode первым Info.plistобнаружил его в папке проекта, которая принадлежала некоторой не связанной зависимости.
Охад Шнайдер

слава богу, вы только что спасли меня от бессмысленной отладки Xcode '
Alex

6

У меня была такая же проблема. Каким-то образом мое значение для ключевого исполняемого файла перепуталось. Просто измените его обратно на $ {EXECUTABLE_NAME} (в вашем проекте> Информация). Работал на меня!


1
Стоит отметить, что у меня было установлено значение $ (EXECUTABLE_NAME), и его обновление до $ {EXECUTABLE_NAME} устранило проблему для меня.
Эрик

5

Не знаю, связана ли эта проблема, но, возможно, это может быть решением для тех, кто тянет за волосы, как я.

В моем случае у меня есть проект с большим количеством целей. Каждая целью является настройкой этого базового проекта , который является Cocoa Touch Static Libraryи целями, Applications. Даже если mainфайл добавлен в компиляцию библиотеки, но не в каждой цели, это сообщение об ошибке появляется. Так что я сделал? Вручную добавили mainфайл к каждой цели в Compile Sourcesразделе и бинго, все отлично.


Спасибо, это очень помогло.
JakeP

5

Для меня ошибка была в файле .plist у ключа CFBundleExecutable. Я переименовал исполняемый файл, удалив пробел между двумя словами. (Например: от "Wild Racer" до "WildRacer"). Потребовался 1 день, чтобы определить это !!

XCoo тааак бесполезен в отладке!


4

В моем случае main.m, содержащий функцию main (...), не содержался в списке «Источники компиляции» в «Этапы сборки». Чтобы проверить, так ли это, войдите в Фазы сборки и посмотрите, отображается ли ваш main.m в списке «Источники компиляции».


1
Я не знаю, как вы обнаружили это, и это была не моя проблема, но это привело меня к решению, так что СПАСИБО !!
Ri_

3

Что для меня решило, так это установил параметр « Построить активную архитектуру только с Нет на Да» .


3

с X-кодом 6.3.2

Опции [Настройки сборки]. [Все] - [Параметры сборки] - [Компилятор для C / C ++ / Objective-C] - [Компилятор по умолчанию (Apple LLVM 6.1)]

Затем пересоберите проект, и он будет работать нормально.


2

В моем случае это помогло просто закрыть Xcode, восстановил разрешения с помощью Дисковой утилиты. Только после перезагрузки все заработало как шарм.


У меня была эта проблема после обновления OSX сегодня. Это было отсортировано менее чем за минуту.
tonyedwardspz

2

Поскольку я также столкнулся с этой проблемой сегодня утром, и ни один из ответов не помог мне, особенно в моем случае. И после нескольких часов попыток я понял проблему.

На самом деле, работая по ошибке в раскадровке, я просто переименовал свой « Main.storyboard » в « .storyboard », и меняя его обратно на « Main.storyboard » решил мою проблему.

РЕШЕНИЕ (согласно моей проблеме) : Возможно, вы переименовали какой-либо файл, из-за которого xcode не смог его загрузить, и возникла проблема. Например: как упомянуто выше, случай изменения имени « Исполняемый файл »
Возможная область проблемы: Возможно, это последние несколько файлов, с которыми вы работали.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.