Xcode 4 говорит «закончил запуск <мое приложение>» на целевом устройстве - ничего не происходит


223

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

Строка состояния показывает, что Xcode строит мой проект, затем говорит, что мой проект запущен, а затем «закончил работу». В течение всего этого периода экран iPod остается черным. IPod обнаруживается в органайзере, и я не вижу ничего плохого в его конфигурации. Все работало отлично всего пару дней назад с Xcode 3.

Он не работает на симуляторе, но может быть важно отметить, что в симуляторе он застревает на «Присоединении к», и симулятор отказывается запускаться.


1
Если вы создадите новый проект с использованием одного из шаблонов xcode и попытаетесь запустить его в симуляторе или на устройстве, будет ли он работать? Я пытаюсь определить, не нарушена ли установка / настройка xcode или что-то в приложении, о котором вы спрашиваете, влияет на поведение.
Кеннбродхаген

2
Создал новый шаблон проекта и все заработало. Итак, теперь мы знаем, что что-то должно быть неправильно настроено в моем проекте.
D-Nice

Д-Ницца, ты когда-нибудь решал это? У меня точно такая же проблема с моей игрой, и я не могу ее решить на всю жизнь.
Адам Джонсон

Ответы:


268

Для тех, кто читает это в отношении Xcode 4.2 и пытается запустить на более раннем устройстве (например, iPhone 3G, 2G, iPod 1st gen и т. Д.), У меня есть другое решение. Новые проекты, созданные в Xcode 4.2 по умолчанию, указывают 'armv7' в 'Требуемые возможности устройства'. Вам нужно будет удалить это, если вы хотите поддерживать устройства под управлением armv6 (например, iPhone 3G).

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

Удалите armv7 из «Требуемые возможности устройства» в yourProjectName-Info.plist

Вам также может понадобиться изменить настройки сборки, чтобы компилировать с armv6 вместо armv7.

Это по умолчанию:

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

Дважды щелкните «Standard (armv7)», чтобы добавить еще один, затем нажмите «+» во всплывающем окне и введите «armv6»:

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

Нажмите готово, и это должно выглядеть так:

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


1
Бинго: Мне нужно было выполнить два шага, описанных для правильной работы на моем старом iPhone 3G. Спасибо MattyG!
Ариэль Малка

1
Бесконечно благодарен! Я бы дал вам 10 голосов, если бы мог. Я рассматривал все сценарии на этой странице, но мне не повезло. Каким-то образом это значение должно было измениться, когда я обновился до XCode 4.3.
IcyBlueRose

Спасибо за ваши усилия, чтобы объяснить процедуру подробно.
Алехин

4
Спасибо и мне тоже! Многие люди предлагают добавить в 'armv6', но удаление armv7 - хитрость!
Гарри Вуд

1
«Удалить armv7 из« Требуемые возможности устройства »в yourProjectName-Info.plist» -> Спасибо
Одед Регев

43

У меня просто была эта проблема, но для меня это было потому, что я указал в моих архитектурах только armv7, а 3G это armv6. Убедитесь, что у вас есть оба.


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

5
Для добавления опции «armv6», смотрите это: stackoverflow.com/questions/7488657/…
pauloya

Мой старый iPod Touch также должен быть armv6, потому что это исправление работало и для него.
Прогрмр

Да, я уверен, что оригинальный iPhone, 3G и первые два iPod были касанием armv6.
Axiixc

21

У меня была эта проблема, и оказалось, что XCode по умолчанию установил целевой показатель развертывания до 4.3, тогда как мой телефон - 4.2.1. Изменение цели развертывания на 4.0, похоже, решило ее.


Именно то, что я искал.
побег

У меня была эта проблема при установке цели развертывания на 5.1, когда мое устройство было только до 5.0.1 - ура, приятель +1
theiOSDude

12

После добавления «armv6» в архитектуры Project и Targets убедитесь, что у вас нет «armv7» в разделе «Требуемые возможности устройства» вашего info.plist. Если это так, просто удалите его, и оно должно работать!


Да, это причина моего дела. Понятия не имею, как "Требуемые возможности устройства" armv7 попали в список. Спасибо!
GeneCode

11

Та же проблема здесь с приложением, не работающим на устройстве. Удаление приложения с устройства не помогло. Проект -> Очистить, затем Проект -> Выполнить снова, тоже не помог. Оказалось, что просто выход и перезапуск Xcode 4 решили это.


9

У меня это тоже было. Я добавил в info.plist раздел UIRequiredDeviceCapabilities, требующий GameKit, и приложение не будет скопировано на iPhone 3G с iOS 4.2. Убрал необходимые возможности, все хорошо.


Как вы должны тестировать приложения, которые требуют gamekit на самом устройстве, тогда?
Роб

Вы по-прежнему получаете GameCenter без вашего info.plist, в котором говорится, что вам требуется устройство, на котором оно есть. Любое устройство под управлением 4.2 имеет GameCenter, поэтому нет необходимости в дополнительном info.plist "Мне это нужно!"
Грэм Перкс

6

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


На устройстве больше нет следов приложения. Я больше не думаю, что это проблема обеспечения ... есть что-то, что испортилось в моем проекте, но я понятия не имею, что это может быть.
D-Nice

6

Мой случай: я по ошибке установил: Требуемые возможности устройства -> акселерометр на NO (в Info.plist). Просто нужно установить его обратно на ДА

Также: убедитесь, что требуемые возможности устройства имеют правильный тип: то есть Boolean или String. Неправильный тип всегда приводит к неудаче теста, и приложение не загружается.


4

Для тех, кто все еще колебался, еще одна вещь, которую я должен был сделать, это сделать имя продукта моей цели одинаковым для конфигураций Debug и Release. Это была «запущенная» версия Debug, которую я не собирал.


4

добавление архитектуры armv6 исправило это для меня.


это было для меня; новая версия XCode решает удалить armv6 из настройки сборки «Архитектуры», поэтому вам нужно будет добавить ее обратно вручную

2

Бывает и со мной иногда. Выполнение очистки (меню «Продукт» -> «Очистить») и запуска (меню «Проект» -> «Выполнить») всегда исправляет это.


Спасибо! Это случается часто. Каждый раз я пробую что-то новое! Это ошибка в Xcode?
Намрата

2

У меня была та же проблема: перенесли проект с xcode3 на xcode4, и после сборки приложения xcode не захотел устанавливать и запускать приложение на моем телефоне.

Мое решение (это сработало для меня):

  • Отредактируйте вашу схему (которая предназначена для запуска)
  • В списке слева выберите «Запустить xyz.app».
  • На вкладке «Информация» в «Исполняемом файле» я выбрал «.app». Измените это, перейдя в каталог сборки и выбрав приложение.

Работал для меня, и теперь я могу использовать: «Продукт -> Выполнить действие -> Запустить без сборки», для запуска последней сборки. Это быстрее, чем просто нажать «Выполнить», поскольку никаких действий по сборке не будет.


нет моего каталога для сборки? странно.
Сэм Джарман

1

Просто перезагрузите устройство. Сделайте чистый проект. Удалите приложение с устройства и перестройте.


0

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


0

У меня была такая же проблема с моим игровым проектом, использующим Cocos2D. «Привет мир» из шаблона работал нормально, мой проект работал нормально в симуляторе, но на устройстве произошел сбой с сообщением: «Закончено выполнение».

Я заменил Info.plist в моем проекте исходным из шаблона, и это сработало для меня!


0

Я испытал это дважды с двумя различными приложениями при переходе на самую последнюю версию XCode. В первый раз сработало компиляция приложения с помощью компилятора GCC LLVM. Во второй раз сработало добавление обратно в архитектуру armv6 в качестве поддерживаемой архитектуры, поскольку она была удалена, когда Xcode автоматически обновил проект.


0

Я решил это, изменив «акселерометр» с «НЕТ» на «ДА» в моем Info.plist.

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


ваше приложение поддерживает акселерометр?
Mac

0

Мое решение было добавить UIInterfaceOrientationPortraitв UISupportedInterfaceOrientationsмассив в Info.plist, хотя мое приложение не поддерживает портрет.


0

Поле под названием «Приложение требует среды iPhone» каким-то образом попало в мой список. Я снял его и вуаля! Он работал на моем iPod.


0

У моего Info.plist целевое членство было установлено на мою цель сборки. Удаление его из целевого членства решило проблему.


0

Я использовал альтернативное имя для Info.plist, но неправильно установил Info.plist Fileнастройку сборки на моей цели. Я обнаружил это, посмотрев комплект приложений и увидев, что он не содержит Info.plist.


0

Убедитесь, что целевой версией развертывания является <= версия iOS на вашем устройстве. Вот как я решил эту проблему.


0

У меня была такая же проблема в течение 45 минут. Очистка не помогла, пересоздание проекта не помогло, версия с ручным управлением не помогла. У меня было открыто несколько сообщений «Не удалось синхронизировать с iTunes», которых я раньше не видел. Нажав OK на тех, кто, кажется, решил проблему :(


0

Сборка, запуск и завершение XCode, но приложение не удалось развернуть и даже не было скопировано на устройство.

На самом деле в проекте XCode должно быть что-то сломанное. Лучший шаг - построить новый проект с нуля. Не забудьте добавить поддержку armv6, как указано в предыдущем посте.

Это хорошо работает для меня!


0

Это случилось со мной, когда я пытался запустить приложение watchOS на устройстве, потому что версия watchOS моих Apple Watch была выше, чем моя установленная в настоящее время Xcode. Я обновил до новейшего Xcode (который также требовал от меня обновления до новейшей macOS), и после этого он работал нормально .

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