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

239

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

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

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

Я пробовал:

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

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

Изображение 55

  • 1
    Я получаю ту же проблему с XCode 6.1. Сначала проблема была только в симуляторе, теперь, после некоторых указаний в этом посте, у меня та же ошибка при запуске моего целевого телефона.
  • 1
    Я следовал за решением @YuAn. Это работает очень хорошо для симулятора. Спасибо. Но когда я пытаюсь собрать его на устройстве, я все равно получаю сообщение «У меня нет разрешения на его просмотр». Файл myapp.app в каталоге products в xcode, а также в каталоге производных данных, отображается заблокированным даже после попытки сборки после удаления содержимого производных данных.
Показать ещё 5 комментариев
Теги:
xcode6
xcode5

51 ответ

28
Лучший ответ

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

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

Это полный diff в случае, если кто-то нуждается в этом для справки:

        <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>
  • 0
    да, у меня была похожая проблема. Файл Info.plist был в двоичном формате. Пришлось конвертировать его
264

Я использую Xcode6 GM. Я столкнулся с той же проблемой. То, что я сделал, это перейти в "Настройки сборки" → "Параметры сборки". Затем я изменил значение "Компилятор для C/С++/ Objective-C" на компилятор по умолчанию. Изображение 1705

146

В Xcode выполните следующие действия

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

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

работы

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

Проблема с УСТРОЙСТВОМ тоже (не только симулятор)?


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

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

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

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

  • 9
    В моем случае это сработало, спасибо. Я изменял другие подобные поля в своем файле <appname> -Info.plist, и как только вы изменили исполняемый файл обратно на $ {EXECUTABLE_NAME}, как вы предложили, он собрал и запустил.
  • 0
    Спасибо .. То же самое было в моем случае
Показать ещё 12 комментариев
52

Для меня простой Продукт → Чистый работал отлично

44

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

24

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

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

Я просто удалил этот Info.plist из добавленной библиотеки.

Затем он работает нормально без предупреждения о разрешении.

  • 0
    Вы также можете изменить имя Info.plist на FRAMEWORK_NAME_HEREInfo.plist
  • 0
    Это решение сработало для меня
Показать ещё 1 комментарий
18

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

  • 0
    Да, со мной произошло, когда я пытался изменить имя приложения. Разработчик сезона так просто рассеянно вошел в plist и изменил «Исполняемый файл», когда на самом деле я хочу изменить «Имя пакета»
  • 0
    Это исправило это для меня. Это случилось после того, как я переименовал свой проект. Благодарю.
Показать ещё 1 комментарий
18

Перейдите к настройкам сборки из целевой цели проекта, затем перейдите в "Параметры сборки", затем измените значение "Компилятор для C/С++/ Objective-C" на компилятор по умолчанию. Я использую Xcode 6 beta 4, и это сработало и для меня.

13

Мое добро! Я потратил несколько часов, чтобы решить эту проблему.

В XCode 7.3 У меня был проект без проблем.

Ошибка, которую я сделал

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

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

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

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

Как я решил

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

Это работает!!

Изображение 1706

  • 1
    Да, это было для меня тоже.
  • 0
    это помогло мне. но я думал, что могу использовать ссылку на папку. странный.
13

Продукт → Очистить (командный сдвиг K) зафиксировал его для меня

  • 0
    Хорошее напоминание, что иногда простое решение - это то, что работает.
  • 0
    Чистый и перезапуск XCode требовался здесь под XCode 7.2.1. Одна только очистка привела меня к «неизвестной ошибке» без попыток построить.
Показать ещё 1 комментарий
12

Попробуйте "cmd + shift + k", чтобы очистить проект и перестроить. По крайней мере, это сработало для меня.

11

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

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

Изображение 1707

  • 0
    У меня сработало спасибо за решение :)
  • 0
    @iOSRocks: Добро пожаловать, приятель!
Показать ещё 1 комментарий
10

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

Изображение 1708

10

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

Перейдите к навигатору проблем и следуйте подсказке "Upate to reconmmeded settings".

Бум, волшебство!

10

1) Сначала выберите варианты сборки.

2) Затем изменилось значение "Компилятор для C/С++/ Objective-C" на компилятор по умолчанию.

чистая и рабочая: -)

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

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

9

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

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

  • Удалить Производные данные
  • в Продукт: сделать чистый
  • перейдите в "Настроить параметры" в проекте "Цель" и перейдите к "Параметры сборки" и измените значение "Компилятор для C/С++/Objective-C" на " По умолчанию Компилятор.
8

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

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

Изображение 1709

  • 0
    У меня тоже сработало.
8

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

Решение

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

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

Ошибка, выраженная в Xcode 6.4 и Xcode 7.0

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

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

7

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

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

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

  • 0
    Этот ответ должен быть помечен как правильный @drewag
  • 0
    похоже, что за этим загадочным сообщением об ошибке стоят разные проблемы, в любом случае это то, что решило мою проблему с XCode 6.1
Показать ещё 1 комментарий
6

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

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

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

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

5

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

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

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

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

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

с X-кодом 6.3.2

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

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

3

Для меня это решило установить Только встроенную активную архитектуру Нет до Да.

  • 0
    Это неправильно в производственном режиме
2

У меня были похожие проблемы. По-видимому, я включил Info.plist из внешней папки проекта. Это приводит к той же ошибке, отображаемой после каждой сборки (за исключением того, что я запускаю ее после очистки проекта).

Чтобы исправить это, мне просто пришлось включить Info.plist из папки проекта.

2

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

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

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

2

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

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

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

  • 0
    Это сработало для меня, спасибо, приятель!
1

Я использую Xcode 6 GM. Я столкнулся с той же проблемой. Я сделал, чтобы перейти к настройкам сборки → Параметры сборки (вы можете искать "компилятор" ), а затем изменил опцию "Компилятор для C/С++/ Objective-C" на компилятор по умолчанию.

0

Я обновил свои cocoa-бобы и добавил новые поддерживаемые архитектуры в настройках сборки, и это исправило это.

0

Сообщение об ошибке является общим и на самом деле не говорит вам, что оно на самом деле означает.

Для меня я должен был восстановить более ранние реверсии github, которые дали:

armv7 armv7s arm64

к архитектуре.

0

У меня была та же проблема с Xcode 10 и реагировать на родной. Все вышеперечисленные решения не помогли мне.

Мое решение: создать новый проект с тем же именем. И измените файлы проекта и рабочей области на файлы из дублированного проекта. И это работает !!! (после некоторых небольших проблем со сборкой и т.д.)

0

Я пришел к этой проблеме как на симуляторе, так и на устройстве.

И есть сложное явление. Если я копирую проект на новое место, есть шанс, что этот вопрос исчезнет при первом запуске. Но после того, как я уберу и бегу, эта проблема возникает.

Я попробовал почти все решения из ответов на этот вопрос, но не делаю.

С помощью системы управления версиями git я могу проверить предыдущую версию кода и посмотреть, какая модификация приведет к этой проблеме.

В моем проекте версия HEAD работоспособна, и моя последняя измененная модификация приведет к этой проблеме.

Поэтому я проверяю каждый файл из работоспособной версии моего кода, чтобы найти проблему. Когда я проверяю coin.xcodeproj/project.pbxproj (монета - это мое имя приложения), эта проблема исчезла.

Решение: просто проверьте работоспособный coin.xcodeproj/project.pbxproj, для моего случая я просто использую версию HEAD в порядке.

git checkout HEAD coin.xcodeproj/project.pbxproj


Сделать это сводкой:

0

Я исправил это, очистив полученные данные от предпочтений в xcode

0

Пожалуйста, также проверьте, добавили ли вы какие-либо сторонние библиотеки с plist. Некоторое время у третьей стороны lib есть информационный plist, вызывающий проблему.

0

Выберите меню схемы, нажав нужную кнопку справа от кнопок запуска/остановки:

Изображение 1710


Нажмите Edit Scheme...:

Изображение 1711


Выберите исполняемый файл:

Изображение 1712

0

У меня возникла проблема с отсутствием AppDelegate.

Создание минимального решения проблемы:

import UIKit

@UIApplicationMain
final class AppDelegate: UIResponder,UIApplicationDelegate {
}
0

С моей стороны, что вызвало эту ошибку, я имел в корне моей папки ресурсов папку с тем же именем, что и мой окончательный исполняемый файл.

Итак, при запуске исполняемого файла, я думаю, что Xcode нашел папку и возникла проблема с созданием папки!; -)

0

У меня была эта проблема, когда мой класс appdelegate не был связан с моей главной целью приложения, а с отдельной статической структурой. Связывание его напрямую с целевым приложением устранило проблему.

0

Проверить разрешения на чтение + запись для папки проекта (щелкните правой кнопкой мыши папку проекта в Finder > Get Info)

0

Это потому, что вы можете использовать репозиторий, клонированный из git или svn. Попробуйте клонировать новую версию и запускать ее.

0

Мое решение было:

  • Введите это в свой терминал: open ~/Library/Разработчик/CoreSimulator/Devices/

  • Удалить соответствующую папку

  • Скомпилируйте снова, он должен работать

0

Мне удалось восстановить проект из резервной копии pre-xcode 6.1,

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

0

То, что мы не делали правильно, - это не применять точный код при входе в настройки сборки. Мы решили проблему следующим образом: Войдите в настройки сборки → Подпись кодов → Идентификатор кода. Затем примените свой идентификатор разработчика iOS для "Отладки", но обязательно примените его к профилю распространения iOS для "Release". Мы не применили правильно, поэтому у нас не было разрешения запрашивать приложение с сервера, на самом деле. В любом случае этот пост заставил нас пересмотреть все параметры и требования, поэтому мы очень ценим все ваши ответы. С Уважением, Т.

0

Я исправил это сам, переключаясь между архитектурами "arm32" и "arm64". Из "Настройки сборки" я изменил "Архитектуры" и "Действительные архитектуры" с "arm32" на "arm64", и он сработал. После изменения ряда других параметров, переключение между arm32 и arm64 больше не имеет значения, поэтому я скептически отношусь к этому вопросу.

Раньше я пробовал все другие предложения здесь:

  • plist не был изменен
  • EXECUTIBLE_NAME не изменено
  • Сборка Clean
  • Удалить DerivedData​​li >
  • Компилятор по умолчанию
0

Для меня ошибка была в файле info.plist, поле Bundle identifier. Как-то он был изменен на

com.myCompany.${PRODUCT_NAME:rfc1034identifier}

из

com.myCompany.${PRODUCT_NAME}

0

Я бы пошел в папку, где находятся ваши документы Xcode, и нажмите команду + I, чтобы получить информацию. Внизу нажмите на замок, чтобы разблокировать папку для редактирования разрешения. Если разрешения выглядят хорошо, установите флажок, который говорит, чтобы применить к закрытым папкам, и пусть это сделает это. Я не видел этого лично и не уверен, что вы говорили в своем посте, когда редактируете разрешения на сборку.

  • 0
    Я пытался дать "всем" права на чтение и запись, но все же не повезло
  • 0
    Итак, еще одна вещь, о которой я могу подумать, это сбросить списки ACL и домашние папки, которые, как мне кажется, обычно находятся в разделе восстановления, введя resetpassword в приложении терминала. Но для дальнейшего устранения неполадок вы можете перетащить эту папку в общую папку в / Users / и создать нового администратора, чтобы увидеть, является ли она специфичной для пользователя.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню