Xcode внезапно прекратил запуск проекта на оборудовании: «Не удалось запустить xxx.app: .. Нет такого файла ..» [закрыто]

139

Xcode перестал запускать мое приложение, оно запустилось сразу после того, как я удалил его с устройства и попытался переустановить, повторно запустив его в Xcode (что я делал сотни раз раньше).

Это говорит

«Не удалось запустить XXX.app»

«Нет такого файла или каталога (/Users/Mylaptop/Library/Developer/Xcode/DerivedData/MyApp-ekxcbebfpzkahtfkujyqkcwprzia/Build/Products/Debug-iphoneos/MyApps.app/MyApp)».

Перезагрузил телефон, перезапустил Xcode, все почистил, все пересобирал. Это сообщение об ошибке не исчезнет.

Это с Xcode 4.5, который я использую с тех пор, как он стал доступен, если я вернусь к 4.3.2, тогда Xcode скажет: «Завершено выполнение приложения», но на самом деле ничего не делает - приложение не устанавливается и не запускается.

Я полностью застрял - больше не могу ничего запустить на устройстве.

Какие-либо предложения?

Gruntcakes
источник
4
Перейдите к Организатору в вашем xcode, нажмите вкладку проектов и удалите производные данные для вашего проекта, очистите проект и снова создайте его ..
Динеш Раджа
2
После этого все равно получится то же самое. Попробую переустановить Xcode.
Gruntcakes
Я думаю, вы что-то изменили в настройках сборки на пути к запуску вашего приложения на устройстве
Динеш Раджа
9
Я выяснил, что это было - добавляя возможности устройства в info.plist, я каким-то образом добавил новую строку, но не присвоил ей значение.
Gruntcakes
1
Хотя удаление производных данных в конечном итоге сработало для меня, это не помогло, пока я не перезагрузил iPad и OS / X, не очистил корзину после использования Finder для удаления производных данных и не удалил периферийное устройство BLE, подключенное через порт USB. Я не знаю, какой из шагов потребовался - XCode позже был скомпилирован с подключенным периферийным устройством BLE - но как только все эти шаги были добавлены для удаления производных данных, проект скомпилировался нормально.
Майк,

Ответы:

125

Это действительно раздражает. Эта ошибка возникает в разных ситуациях. Иногда проблема решается перезапуском Xcode. Если нет, выполните следующие действия:

Отключите ваше устройство.

Удалите приложение со своего устройства.

Закройте Xcode (не просто закройте окно, закройте его)

Удалить папку с производными данными ( ~/Library/Developer/Xcode/DerivedData/-gbrvhlvwmpiobxdujegtghggrffpили что-то в этом роде)

Теперь снова запустите Xcode, подключите устройство и запустите проект. Должно работать нормально.

из блога DhilipSiva

Sudhakar
источник
4
Это было для меня ключом. Оцените уровень детализации ответа.
Джейсон Павлак
Одна из «действительно раздражающих» вещей при работе над этой платформой
рашинг
2
не работает ... я работаю на устройстве
Rajneesh071
Вышеуказанные шаги не помогли решить проблему. Я все еще получаю сообщение «Не удалось запустить <приложение>. <Приложение> не найдено».
user298261 09
работал у меня, попробуйте этот
Мухаммад Вакас
57

Попробуйте удалить «Необходимые возможности устройства» в файле -Info.plist.

Вы не можете требовать armv7 на 3G, и вы не можете требовать armv6 на любом новом устройстве, поэтому просто удалите этот атрибут полностью.

Альмог С
источник
2
Это единственное решение, которое у меня сработало. Уже пытаюсь обновить сертификаты, очистить папки, перезагрузить устройство, xcode и mac ничего не помогло. Просто удалите атрибут, и он установился и работал нормально.
automaticoo
1
Это решение также сработало для меня - странная ошибка.
неправильное употребление
Я также должен был убедиться, что действующие архитектуры в настройке включали armv6, armv7 и armv7s (сейчас я использую XCode 4.5 ... Я знаю, что прошло несколько месяцев, но стоит упомянуть). Кроме того, эти три должны быть перечислены в разделе "Архитектура".
Дэвид Мортон
Пробовал, без радости, но ответ Судхакара + Джаггера сработал. Xcode 4.5.1 и
iPad1
Это было для меня проблемой: у моего приложения была «телефония» как необходимая возможность, и я пытался запустить приложение на iPad mini только с Wi-Fi.
chitza 01
38

Я нашел ответ. Версия цели развертывания iOS не совпадала с версией ОС моего устройства.

с
источник
Сделал это и для меня. По какой-то причине XCode всегда хочет сбросить цель развертывания моего проекта до 6.0.
Дональд Берр,
3
у меня тоже сработало ... Я менял Тип устройства с «iPhone» на «Универсальный», и xcode автоматически изменил цель на 6.0, чего я сначала не заметил. Перешел обратно на 4.3, и это сработало ...
Джим Хосе,
Жаль, что удаление DerivedData и необходимых возможностей устройства не помогло, поэтому я установил цель развертывания с 6.1 на 5.0, и это сработало на моем iPod Touch под управлением iOS 5.1.
Ричард Альтенбург - Brainchild
о Боже. сколько раз я собираюсь сделать то же самое ...
heximal
это было решение для меня
Джордж Бакингем
13

Сначала попробовал некоторые из вышеперечисленных с помощью info.plists и удаления производных данных, очистки и т. Д.

Мое решение: выйти из XCode, снова открыть проект. Перейти к производным данным в Finder. Удалены данные для всех проектов (все можно было удалить, но сначала я бы попытался удалить данные о проблемном проекте). А потом снова заработало. Удаление производных данных из XCode не помогло.

Йорис ван Лимпд iDeveloper
источник
4
Путь к папке с производными данными: / Users / <User> / Library / Developer / Xcode / DerivedData /
Pascalius
это решило мою проблему + удаление всех папок освободило 10 ГБ памяти, так что двойное спасибо :)
thesummersign
10

Следующее решило мою проблему ... мое приложение работало для меня при отладке / выпуске, затем я создал несколько специальных архивов, и сборки отладки / выпуска перестали работать.

Симптомы:

  • ошибки недопустимых прав при запуске с Xcode на устройство (играйте с правами ...)
  • немедленное прерывание без ошибок (завершение работы) при запуске симулятора
  • не удалось запустить ... каталог blabla ... / build / product / debug-iphoneos / ... не найден при запуске с Xcode на устройство.

В конце концов, после попытки извлечь пользу из чужой боли я обнаружил в Targets [AppName]:

Build Settings
Build Locations
Build Products Path build

должно быть

Build Products Path build/Products

Не знаю, как это было неправильно установлено. Это должно быть жестко запрограммировано где-нибудь в Xcode / Springboard, потому что «Продукты» отображаются как в Xcode, так и в консоли устройства. Это Xcode 4.5.1.

скриншот fo где установить сборку / продукты

KeithL
источник
1
Не могли бы вы отформатировать его, чтобы смысл был более понятным? Неясно, как его вводить.
itsbruce 01
1
Вау, спасибо большое, Кит. Спустя 4 разочаровывающих часа выясняется, что это была причина. Как в мире это изменилось, мне непонятно.
karl_ 06
1
Да, это решило мою проблему, но почему это произошло ?!
Али
7

Я решил эту проблему

переименование каталога над моим проектом XCode

Изменение названия проекта в XCode исправило это для меня.

В XCodeнавигаторе проекта щелкните имя проекта, и он должен позволить вам переименовать его, как файл в Finder. Удаление производных данных не помогло.

Скотт Дрисколл
источник
Это сделало это для меня, по какой-то причине это не удалось, когда у меня было пробел в имени проекта. Переименован в без пробелов, и все работает нормально.
Рита
6

Я создал свой проект XCode с помощью CMake, и каким-то образом он (или моя глупая личность) удалил или опустошил свойство «Исполняемый файл» в info.plist. Я снова установил его на $ {EXECUTABLE_NAME}, и он снова заработал.

Мне потребовалось очень много времени, работая над всеми предложениями и исправлениями, пока я наконец не нашел эту проблему.

Надеюсь, это поможет кому-то, кто борется с той же проблемой.

Редактировать:

Это было каким-то образом CMake испортил мой файл plist. Я создал свой собственный Info.plist и использовал его следующим образом:

SET_TARGET_PROPERTIES( MyApp PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_LIST_DIR}/MyApp.plist )

Внутри моего списка была такая запись:

<key>CFBundleExecutable</key> <string>${EXECUTABLE_NAME}</string>

К сожалению, CMake все еще, кажется, анализирует этот файл и заменяет $ {EXECUTABLE_NAME} пустой строкой, так как это синтаксис переменной CMake. Моя быстрая работа заключается в следующем:

SET( EXECUTABLE_NAME "\${EXECUTABLE_NAME}" )

Теперь это работает как шарм.

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

Ecreif
источник
Ницца. Я случайно удалил свой файл .plist, и это было одно из свойств, которые мне нужно было добавить снова. Спасибо
Это set(EXECUTABLE_NAME "\${EXECUTABLE_NAME}")было именно то, что мне нужно. Я добавил эту строку в конец моего файла цепочки инструментов ios, и она исправила ее безупречно. Огромное спасибо!
Deathicon
5

У меня была та же проблема, но в моем случае у меня было неправильное требование в моем info.plist (требуется гироскоп для iPhone 3Gs)

Unfalkster
источник
4

Я попытался запустить свой проект в другой системе, отличной от той, на которой он был разработан. Я получал «Не удалось запустить xxx.app: .. Нет такого файла ..».

Удалил приложение с устройства, а затем удалил производные данные из органайзера в xcode для приложения. Организатор -> Проекты -> Производные DAta -> Удалить

Моя проблема решена.

iSaalis
источник
4

Вам необходимо установить цель развертывания НИЖЕ, чем версия вашего устройства.

Джим Хуанг
источник
4

Для меня решением было просто использовать правильный (нераспространяющий) профиль подготовки.

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

В XCode раньше было предупреждение, в котором говорилось о необходимости использовать правильный профиль подготовки, но это сообщение об ошибке, похоже, исчезло в XCode 4.5.

TPoschel
источник
Это, безусловно, совокупность сбоев и исправлений, очевидно, что многие сбои XCode попадают в это бесполезное сообщение об ошибке. В этот раз для нас и еще нескольких ниже, это, похоже, было вызвано проблемами сертификата / подписи / профиля, выбросив несколько старых просроченных и убедившись, что я использую одни и те же профили повсюду (например, Ябольник ниже , У меня есть несколько учетных записей разработчиков, как у моего работодателя, так и у меня.) Разрешил XCode запускать приложение на устройстве.
Тарин
4

У меня была эта проблема очень странным решением.

Моя проблема была немного другой, так как у меня есть 2 сертификата разработчика в Связке ключей. У нас есть две учетные записи разработчика (допустим, AD и BD).

1) Я изменил идентификатор пакета с com.BD.game на com.AD.game 2) Устройство, на котором у меня возникли проблемы, было подписано только в профилях обеспечения AD. 3) Мне не удалось отладить игру на iPad - хотя на устройстве были действующие профили подготовки, у меня были действующие сертификаты, я перезапустил Mac, устройство, переустановил Xcode ... ничего не помогло.

То, что я сделал сегодня, - это проверка файла project.pbxproj на предмет каких-либо странных записей.

Я обнаружил, что Xcode использовал правильный профиль обеспечения, но подписал ipa / app с неправильным сертификатом.

"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: **BD** (XX******)";

После того, как я вручную исправил имя и идентификатор; все работает как шарм.

Jabolcnik
источник
4

У меня такая же ошибка. В моем случае я был настроен на развертывание как 6.1 и пытался запустить iPad с iOS 5.1. Когда я изменил цель развертывания на 4.3, проблема решена.


Проблема все еще не решена. Попробуйте это Отключите ваше устройство. Удалите приложение с вашего устройства. Закройте xcode. Теперь запустите Xcode, подключите устройство и запустите проект. Должно работать нормально.

Нижил Наир
источник
4

Для меня (с использованием IOS 7 и Xcode 5) ошибка исчезла сразу после того, как я сделал «Добавить в Центр участников» с моим устройством в Организаторе.

Брюс Циховлас
источник
Это помогло. Однако после этого мне потребовалось перезагрузить устройство, чтобы избавиться от ошибки.
Bouncing Bit
3

Я хотел бы упомянуть, что самый простой способ открыть папку DerivedData в Finder - это следующий:

  1. Откройте Организатор.
  2. Щелкните «Проекты».
  3. Выберите свой проблемный проект.
  4. Рядом с путем к DerivedData нажмите маленькую кнопку со стрелкой вправо.

У меня сработало удаление содержимого папки DerivedData. Вместо того, чтобы использовать кнопку «Удалить ...», вы должны иметь больший успех, удаляя файлы вручную через Finder.

user444731
источник
3

Перейдите по ссылке: Target вашего проекта -> Info и из CustoM iOS Target Properties удалите требуемые возможности устройства. В моем случае это были armv7 и armv7s.

После этого приложение было успешно создано на моем iPhone 4.

Вот как это выглядит после того, как я удалил оба требования

Деян Балабан
источник
У меня была та же проблема, приложение запускалось на моем 5S в первый раз, но не в последующие раз. Оказалось, что мои Обязательные возможности устройства были установлены на «armv7», что было удалено из списка исправлений
Кам Саул,
2

Лично я забыл, что у меня есть "телефония" в "Требуемые возможности устройства" в info.plist. Удалил это, и, наконец, это сработало на моем iPad.

ниндзянин
источник
2

Для меня перезапуска Xcode, очистки DerivedData и перезапуска устройства в большинстве случаев было недостаточно, пока я не выяснил, что iTunes также работает, и после выхода из iTunes все работало нормально!

Итак, мои шаги теперь просты:

1. Закройте Xcode.
2. Если iTunes запущен, выйдите из iTunes.
3. Откройте проект заново.

Не нужно удалять приложение с устройства, очищать проект или перезапускать / отключать устройство. Я думаю, это потому, что Xcode и iTunes используют некоторые общие библиотеки (как вы знаете, Xcode Installer всегда просит закрыть iTunes при установке iOS SDK).

параметр
источник
2

У меня возникла эта проблема, и я попробовал несколько предложений, которые у меня не сработали - потом я нашел предложение об удалении «Требуемых возможностей устройства» в файле -Info.plist (который для меня включал службы определения местоположения и GPS) Это сработало! Затем я повторно добавил их, и он все еще работал ... поймите. Это был xCode 4.6.1, и мое приложение разработано на Phonegap / Cordova.

Дилан Гамильтон-Фостер
источник
Я также нашел там пустую строку, которая блокировала органайзер! Спасибо за чаевые !
PetrV 07
2

Я пробовал все вышеперечисленное, но все равно не запускалось. Я исправил проблему, изменив местоположение производной сборки. Файл> Настройки проекта> "Местоположение производных данных" изменится на относительное к проекту. Или вы можете просто убедиться, что путь по умолчанию имеет разрешение на чтение / запись.

Wickedgk
источник
1

Моя проблема, казалось, заключалась в выборе портрета (верхняя кнопка дома) в качестве элемента 0 в поддерживаемых ориентациях интерфейса в моем списке. Удаление этого или перемещение вниз, казалось, решило мою проблему. Иди разбери.

Becka11y
источник
1

У меня тоже была эта проблема для универсального приложения с Xcode 4.5 ТОЛЬКО на моем iPhone, где у меня было два устройства отладки:

iPhone 4 iOS 5.1.1
iPad 1   iOS 5.1.1

В Info.plist была пустая запись в разделе «Требуемые возможности устройства». Я знаю, что я не вводил этот пустой «Элемент 0». Приложение загружается на iPhone, так как я удалил пустой элемент. Я не сталкивался с этой проблемой ни в одной из нескольких более ранних версий Xcode. Это означает, что Xcode 4.5 по-разному обрабатывает этот «вставленный» элемент для двух устройств, которые я использую. Раньше я ошибался, но это действительно похоже на ошибку в Xcode 4.5.

mbarron
источник
1

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

Поэтому при обновлении до iOS 6 в качестве цели развертывания будет установлена ​​iOS 6. Вам необходимо выполнить развертывание до версии 5.1, если устройство, на котором вы тестируете, все еще работает с версией 5.1.

Мэтт Хадсон
источник
1

Моя проблема, наконец, была решена путем проверки, чтобы убедиться, что productNameатрибут в /* Begin PBXNativeTarget section */разделе моего project.pbxprojфайла соответствует nameатрибуту.

После редактирования так, чтобы они были одинаковыми, Xcode, наконец, правильно запускает приложение на моем устройстве!

Спасибо Максу Вайзелю за помощь! : D

Grantland Chew
источник
1

Удаление папки с производными данными мне не помогло. Используя Xcode 4.4.2, единственным решением было открыть Организатор и удалить старые просроченные и лишние профили подготовки на iDevice. Потом все снова заработало отлично.

Роберт Васманн
источник
Это, безусловно, совокупность сбоев и исправлений, очевидно, что множество сбоев XCode обрушились на эту нейтральную зону.
Тарин
1

Это может быть отвлекающим маневром, но у меня возникли эти проблемы, когда я добавил пользовательские изображения запуска перед удалением изображений по умолчанию. Удаление стандартного запуска и пользовательских изображений, а затем добавление обратно в пользовательские, исправило это для меня. Я работаю с iOS 6 и Xcode 4.5.2

Джи О'Рилла
источник
1

Это очень полезное сообщение об ошибке может быть вызвано несколькими причинами.

Для меня это было связано с неправильным «Требуемыми возможностями устройства» в Info.plist. Я по ошибке добавил пустой элемент массива (поверх архитектуры armv7). Удалил пустой элемент массива и теперь все в порядке!

MattP
источник
1

У меня была эта проблема, и ничего действительно не помогло, кроме: Моя проблема началась после изменения содержимого моего info.plist, и возврат не помог.

Для меня это решило:

  1. Создайте ванильный info.plist в новом проекте
  2. замените старый info.plist новым
  3. переименование (например, app_info.plist)
  4. Установите настройки сборки / упаковка / INFOPLIST_FILE как новый.
  5. Внесите все необходимые изменения для вашего проекта

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

Капи Йоав Кедем
источник
1

Столкнувшись с той же проблемой, но теперь проблема решена, я удалил Executable file info.plist. Я снова установил его на $ {EXECUTABLE_NAME}, и он снова заработал .. :)

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

Раджниш071
источник
1

В моем случае я просто установил разрешение 777 непосредственно на папку xxx.app для всех файлов и работаю!

Артур Гуларт
источник