Помилка Xcode 4: Помилка запуску виконуваного файлу


81

Я зіткнувся з проблемою тестування мого додатка на iOS та Xcode, коли завантажував його на свої фактичні пристрої (iphone та iPad), і мені цікаво, чи хтось знає проблему і може мені допомогти:

Зазвичай, коли я будую програму на своїх пристроях, вона встановлюється та запускається на моїх пристроях. Але, коли я готуюся до подання свого першого додатка, я тестував і міняв ідентифікатор набору, ідентифікатор програми та положення про розробку (тому проблема може мати до цього щось спільне), і зараз, коли я намагаюся побудувати свою програму на мої пристрої, хоча він встановлений на моїх пристроях нормально, Xcode більше не запускатиме програму. Натомість я отримав таке повідомлення про помилку:

Помилка запуску виконуваного файлу. Помилка запуску віддаленої програми: немає такого файлу або каталогу.

Хтось знає, в чому проблема? І про що ця папка з похідними даними?

Дуже дякую!


Відповіді:



88

Запуск програми з чистого листа

Для мене проблема не вирішилася, доки я не зробив наступного в такому порядку:

  1. Видаліть програму з пристрою (зробіть це перед повторною спробою налагодження)
  2. Вийти з XCode (не просто закривати проект)
  3. Видаліть папку збірки додатків (приклад шляху: / Users / myusername / Library / Developer / Xcode / DerivedData / MyProject-fhkaamuyvqhubaezinqbmxbnaufd /)
  4. Перезапустіть XCode
  5. Нарешті - спробуйте налагодити ще раз на пристрої iOS

Папка збірки додатків на кроці 3 відноситься до папки збірки вашої програми, яка є дочірньою структурою "DerivedData". Щоб знайти це, ви можете розкрити свій додаток у інструменті пошуку, а потім повернутися назад, доки не дійдете до папки "DerivedData" та видалити папку вище, наприклад "MyApp-crazylongweirdletters". Без цього кроку (3) я не міг налагодити, тому це є критичним кроком, і перед тим, як зробити цей крок, потрібно вийти з XCode.

Для деяких здається, що просто перезапуск XCode робить трюк, але не для мене.

Я публікую цю відповідь лише тому, що попередні відповіді НЕ працювали для мене. Сподіваємось, інші, що б’ються головами, знайдуть це і зітхнуть з полегшенням. :)

Примітки:

  • Проблема почала траплятися у мене, коли я змінив ідентифікатор пакета програми.
  • Мій код підпису є і був правильним. Моїм профілем підготовки був "Профіль підготовки команди", який повинен працювати для будь-якого ідентифікатора програми (за замовчуванням для автоматичного вибору профілю "Розробник iPhone").
  • Я виконував збірку DEBUG (не випуск / розповсюдження).

5
Це спрацювало для мене. Просто переконайтеся, що ви вийшли з XCode, а не просто закривали проект.
Хорхе Гарсія,

1
Це почало траплятися і зі мною, і це виправило - здавалося, щось стосується того, що мені довелося поновлювати сертифікат розподілу
Саймон Іст

1
Це також спрацювало для мене, коли вихід із Xcode та видалення програми з пристрою не зробили. Мені вдалося запустити програму з пристрою, тільки не за допомогою налагоджувача.
Віль Маколей,

2
Рекомендована відповідь не спрацювала для мене, але це зачарувало! Просто для того, щоб пояснити кожному, хто її читає, щоб знайти папку збірки в Xcode, клацніть на вашу програму у вікні списку файлів у вікні та "показати у пошуку".
sradforth

1
Він нічийний герой .. - ((просто приспів) ця відповідь заслуговує галочки!
bobobobo

10

Ви не можете налагоджувати (починати з Xcode) програму, підписану профілем розповсюдження, якщо я добре пам'ятаю ... І тоді ви отримуєте такі повідомлення, gdb не вдається приєднати до процесу.


Привіт, Вінсент! Навіть я створив свою програму, використовуючи профіль розробника, все ще стикаюся з тією ж проблемою.
ravoorinandan

1
@ravoorinandan Спробуйте моє рішення (закрийте XCode, видаліть папку збірки додатків, потім відкрийте XCode і спробуйте налагодити. Можливо, також непогана ідея видалити програму перед запуском. Це призвело мене до того, що я вдарився головою ще до того, як я спробував виконати ці дії. Якщо це спрацює) за вас, будь ласка, проголосуйте мою відповідь (не лише цей коментар).
Сем,

7

Нарешті я знайшов свою помилку!

Я бавився зі своїм файлом info.plist і змінив ім'я виконуваного файлу та відображуване ім'я набору та набору! Як тільки я змінив їх на За замовчуванням (EXECUTABLE_NAME, PRODUCT_NAME, PRODUCT_NAME відповідно), він спрацював чудово.


3
У мене була проблема з моїм списком, яка також спричиняла ту ж проблему. Переконайтеся, що переглянули свій список, хлопці! Дякуємо за підказку!
Ітан Аллен

4

Видаліть програму з пристрою (натисніть і утримуйте, а потім видаліть) і повторіть спробу.


3

Для мене ніхто з тих не працював. Та сама помилка, але інше рішення.

Моя проблема була спричинена тим, що я випадково змінив "Ціль розгортання" (версія iOS) на версію вищу, ніж на телефоні, на якому я намагався запустити код.

Виправлення було простим - опустіть ціль розгортання нижче або дорівнює версії програмного забезпечення ios на моєму телефоні :)


2

Я отримав ту саму помилку, оскільки неправильно підписав код.

Перейдіть до свого проекту> Цілі> Налаштування побудови> Перевірити підпис коду на стан налагодження.


1

Я натрапив на це як на вирішення іншої проблеми, яка була попередженням при спробі створити програму на новому пристрої 4.3.5.

Якщо я встановив для профілю розподіл, я не отримую попереджувального повідомлення під час створення програми, але налагоджувач приєднається до пристрою.

Якщо я встановлю підпис коду на профіль розповсюдження, я не отримую жодних попереджень у процесі побудови, але налагоджувач не приєднується. Тож відповідь вище про підписання підписів видається правильним. Це також може бути проблемою лише на нових пристроях 4.3.5 із xcode



1

Ця помилка іноді трапляється через неповний процес "Відновлення" або "Синхронізація" вашого пристрою, який зберігає заблоковані файли .app.

Що я зробив, мені довелося зробити джейлбрейк свого пристрою, щоб знайти програму в розділі / Користувач / Програми / XXXXX-XXXX-XXX / і фізично видалити .app

Для одного з додатків він працював, а для іншого я зрозумів, що просто не запускає GDB автоматично, тому повідомлення про помилку вводить в оману, тому я встановив GDB в ручний режим, і він спрацював, і не дав мені цієї помилки, але, звичайно, я для запуску сеансу налагодження потрібно запустити програму вручну.

Можливо, це вимагало деяких інших речей, які я робив раніше, як перевірка профілю надання, але це був останній крок, який змусив це працювати.

До цього я спробував, що всі рішення у мене не працювали, і, очевидно, просто видалити програму, утримуючи палець на екрані, не спрацювало, оскільки вона видалила піктограму, але всі файли все ще були там. (Оскільки це була програма для розробки, а не завантажена програма App Store)


Ви спробували моє рішення, і воно не спрацювало? Я особисто знаю, що не хотів би робити джейлбрейк свого пристрою
Сем

Так, я спробував ваше рішення, і багато іншого, проблема полягала в неповному резервному копіюванні, яке просто вбило значки додатків для розробки на пружинній дошці.
Rhm Akbari

1

мала таку ж проблему, вийти з XCode ... видалити додаток з пристрою ... запустити програму ще раз .. я вирішив це так .. комусь із моїх друзів довелося перезапустити пристрій.


1

У мене така сама проблема. Я вирішив це, змінивши назву каталогу проекту, а потім знову запустивши програму.


0

У мене виникла ця проблема на нещодавно відновленому пристрої, на якому мої програми, що перебувають у розробці, не були переінстальовані - вони з’являлися на трампліні як "Очікування" для завантаження з App Store. Видалення програми з Springboard вирішило проблему.


0

З цією проблемою я стикався з учора на двох різних пристроях, обох iOS 4.x. Видалення папки DerivedData, видалення програми, перезавантаження Xcode та очищення коду НЕ працювали. Повторення всіх кроків, на додаток до перезавантаження пристрою це виправило для мене.


0

Тут я публікую оновлення до випуску. Може бути корисним для когось із тією ж проблемою. Я маю Xcode 4.4 і запустив його на пристрої з iOS 5.0. Якщо Xcode не має симуляторів 5.0

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.