Xcode не может работать в выбранном пункте назначения
Сегодня утром я запускал свое приложение, и теперь неожиданно я получаю следующую ошибку, когда пытаюсь запустить симулятор iPhone 5.1.
Не удается запустить выбранный пункт назначения
Назначение не поддерживает архитектуру, для которой построено выбранное программное обеспечение. Перейдите в пункт назначения, который поддерживает эту архитектуру, чтобы запустить выбранное программное обеспечение.
Я удалил схемы, но до сих пор не решил.
Я использую Mountain Lion. Я использую xCode 4.4 (недавно обновлен до Mountain Lion и xCode 4.4)
ОБНОВЛЕНИЕ 1: Вот вид моих настроек сборки:
![enter image description here]()
ОБНОВЛЕНИЕ: Вот фактическая ошибка, которая предотвращает ее выполнение.
![enter image description here]()
Ответы
Ответ 1
Вы можете выполнить следующие шаги:
- Quit Xcode и iPhone симулятор
- Отключите ваши устройства.
- Перейти к
/Users/your_usr_name/Library/Developer/Xcode/DerivedData/
- Удалить все данные в этой папке
- Запустите Xcode снова и запустите проект
Надеюсь, это решит вашу проблему.
Ответ 2
У меня возникла проблема после обновления с SDK от 3.1 до Facebook SDK 3.1.1. По-моему, я виноват.
Внутри папки "resources" теперь есть абсолютно бесполезный, но опасный info.plist, который, если импортируется, может разорвать ваш файл проекта. Не знаю, почему они включили его, но я считаю, что некоторые из нас недавно совершили ту же ошибку.
Ответ 3
Я нашел эту проблему с версией Xcode 4.4. И, наконец, я решил это так:
Найдите "Info.plist" в своем проекте, затем отмените выбор целевого членства плюс в правом окне окна, он работает для меня.
Ответ 4
Вы также можете проверить, использует ли проект поддерживаемый компилятор в настройках проекта ![the option shown in blue]()
Ответ 5
Его просто дублированный файл Info.plist
просто используйте 1 файл Info.plist в файлах, затем перезапустите xcode
его исправлено для меня
Ответ 6
Я только что столкнулся с этой ошибкой в Xcode 4.5.1, и ошибка исчезла после того, как я вывела все не-альфа-символы из настройки сборки Product Name
.
Ответ 7
Я считаю, что это может быть текущая незарегистрированная ошибка с Xcode 4.4+. У меня/была такая же проблема с моим проектом. Я удалил все версии Xcode и перезапустил с 4.4, открыл мой проект и снова получил ошибку.
Затем я начал новый проект с шаблоном с другим именем. Не было проблемы.
Затем я переименовал свой старый проект, запустил новый пустой проект с тем же именем и создал/запустил и снова получил ошибку. Этот новый проект был не более чем контроллером вида, который ничего не делал. Я должен был получить пустой экран, но получил ту же ошибку, что и вы.
Разочарованный Я закрыл на день и перезапустил старый проект, и он сработал. Я ничего не изменил. В настоящее время у меня есть ошибка снова, и ни перезагрузка, ни перезапуск Xcode не исправляют ее.
Итак, в целом, проект не может иметь абсолютно никаких изменений, иногда он строит и работает нормально, иногда вы получаете эту ошибку. Для записи я не получил эту ошибку при запуске Xcode 4.3.
Моя проблема не появлялась до тех пор, пока я не обновился до Mountain Lion и Xcode 4.4, который оказался в тот же день. Теперь я не могу вернуться к 100-процентной работоспособной конфигурации.
Ответ 8
Завершение моих файлов в SVN и проверка проекта в новом каталоге исправили это для меня.
Ответ 9
Посмотрите как на проект, так и на целевые параметры сборки на этой архитектуре и посмотрите, не изменилось ли что-либо. Когда вы сначала переходите от Xcode 3 к 4, он использует скрытый хаос, давая ту же ошибку, и в конце вам нужно добавить i386 в строку "Действительные архитектуры". Я просто посмотрел на свой большой проект, запущенный в Xcode 4.1, и он ничего не показывает о i386 и т.д., Но у меня есть другие более новые проекты, где я получаю эту выделенную вещь в этой строке $(ARCHS_STANDARD_32_BIT).
РЕДАКТИРОВАТЬ: Я принял это предложение с другом-гуру. Ни один из нас не может найти связь с i386 в наших проектах - Xcode использует некоторую магию. Тем не менее, я получил удар по i386 в двоичном plist внутри проекта, что приводит меня к другому предложению.
В настройках сборки убедитесь, что ВСЕ "Архитектуры" - $(ARCHS_STANDARD_32_BIT).
Если это не сработает, мы предлагаем вам посмотреть строки компиляции и ld вашей сборки, когда вы выбираете iPhone 5.1 Simulator в меню схемы - чтобы увидеть, действительно ли это i386,
Другая идея - перенести все свои схемы и пользовательские настройки в папку сохранения где-нибудь (с закрытым проектом), затем снова открыть и воссоздать схему. Теперь попробуйте еще раз. Нет ссылки на i386 в любом из моих файлов project.pbxproj, поэтому наше подозрение в том, что это как-то связано с настройкой схемы для целевого устройства.
Удачи!
Ответ 10
Я решил изменить как в проекте, так и в настройках целевой сборки ключ "Варианты сборки" от "armv7" до "normal"
Ответ 11
в дополнение к удалению всех файлов в этом каталоге
Пользователи /your _usr_name/Library/Developer/Xcode/DerivedData/
Я перезапустил свой Mac, и он работал нормально (перезагрузка xcode и симулятор не разрезал для меня)
Ответ 12
Я столкнулся с этой проблемой. В моем случае оказалось, что я изменил имя Bundle для моего проекта с несколькими целевыми объектами вместо имени продукта. Как только я исправлю это, правильно отредактировав имя проекта, а затем вернув имя Bundle Name в значение ${PRODUCT_NAME}, он снова запустится в симуляторе.
Это не может быть ответом для всех, но он показывает, что ошибки присвоения продукта (специальные символы, пробелы и т.д.) являются источником многих, и это заставило меня пересмотреть переименование, которое у меня было.
Ответ 13
Я столкнулся с той же проблемой с моим проектом. Вот краткое объяснение ситуации и мое решение. Это может быть или не работать в вашем случае.
Я работаю в месте, где есть несколько проектов iOS. Недавно я обновил систему до Mac OSX 10.8 и Xcode 4.4.1. Я работал над проектом, который был первоначально построен на Xcode 4.1 для iOS 4. Так как Xcode имел iOS 4-симуляторы до 4.3, проект был построен и отлично работал на всех симуляторах. Однако в Xcode 4.4.1 я не нашел iOS 4-симуляторов, и нет простого способа их установить, поэтому я получаю сообщение "Can not run at selected destination". Вот как я получил свой проект для запуска.
-
Установите флажок Build Settings > Architectures
и установите для архитектуры все Standard (armv7)
или ${ARCHS_STANDARD_32_BIT}
для всех ваших профилей.
-
В моем случае установите Base SDK
в Latest iOS(<ios version #>)
5.1.
-
Задайте Build Active Architecture Only
- NO
для всех профилей.
-
Установите Valid Architectures
в armv6 armv7
для всех профилей. Возможно, вам придется добавить либо в зависимости от того, что уже доступно.
-
Установите iOS Deployment Target
в iOS 5.1
(в моем случае).
-
Убедитесь, что у вас есть та же цель под Deployment Target
на вкладке Summary
вашего проекта.
Очистите и запустите и скрестите пальцы!
Ответ 14
В моем случае проблема возникает после удаления всей папки "Ресурсы", копирования папки "Ресурсы" из другого или старого проекта поверх текущей, а затем добавления этой папки.
Я решаю проблему с помощью инструмента Analyze: после анализа, она нагревает меня в Info.plist внутри "Copy Bundle Resources".
Просто перейдите на вкладку "Копирование запаса" (на вкладке "Сборка фразы" ), удалите Info.plist, затем перезапустите Xcode, очистите и создайте. Мой проект вернулся к нормальной жизни.
Надеюсь, что помогите кому-то:)
Ответ 15
Я думаю, что многие из этих решений заставляют полностью перестраивать, что и решает это для меня.
Я сделал Product = > Clean, и проблема исчезла.
Ответ 16
Для меня это сработало: - Проверьте, все ли ссылки на продукты согласованы в настройках и plists. Также проверьте, что имя продукта не содержит пробелов или других "незаконных" символов.
Ответ 17
попробуйте переименовать свой проект. Я решил таким образом.
Ответ 18
Судя по ответам, этот тип ошибок имеет много потенциальных источников, поэтому вот моя (по общему признанию, неосторожная) версия ошибки (и простое решение):
- Параметры конфигурации проекта XCode могут быть установлены на двух уровнях: уровне проекта и целевом уровне. Для тех, кто менее известен, целевой уровень - это то, где у вас есть исполняемое приложение, и часто другие элементы, такие как построение динамической библиотеки.
- В разделе "Связывание" настроек сборки есть опция для типа Mach-O, где вы можете установить исполняемую, динамическую библиотеку, статическую библиотеку и т.д.
- У меня возникли проблемы с подготовкой динамической библиотеки, проверкой параметров сборки для проекта и увидел, что Mach-O был пустым. Поэтому я установил динамическую библиотеку. Затем я продолжил рассмотрение других вещей и забыл, что сделал это изменение. Но я не понимал, что я был на общем уровне проекта, а не на целевом уровне для реальной динамической библиотеки. Это изменило все целевые настройки Mach-O на динамическую библиотеку.
- И, конечно, исполняемый объект не понравился, когда его рассматривали как динамическую библиотеку, и я получил сообщение об ошибке OP.
- Установка исполняемого файла обратно к исполняемому файлу Mach-O в настройках сборки на целевом уровне устраняет все. Раздражающе, на уровне уровня проекта все еще говорилось о динамической библиотеке, но при правильных настройках целевого уровня все работало нормально.
Глупый я знаю, но так как пара более радикальных решений, перечисленных выше, косвенно была бы решена для этой ошибки, я думал, что поделюсь тем, что кто-то другой совершил ту же ошибку!
Ответ 19
Способ, которым я решил эту ошибку, заключался в добавлении фиктивной функции в мой проект. Моя проблема была У моего приложения не было собственного кода, только связанного кода.
У меня необычная ситуация с двумя проектами: один родитель "Приложения" и один "Двигатель". Весь компилируемый код находится в дочернем элементе, а родитель просто связывается с дочерним элементом, копируя в проект массу ресурсов, связанных с App.
По-видимому, это печально Xcode, в результате чего вышеназванная ошибка.
Мое решение добавляет эту C-функцию/файл в проект приложения:
int workaround_for_xcode_reporting_cannot_run_on_selected_destination(){return 0;}
Ответ 20
Я восстанавливаю данные с машины времени. Обратите внимание, что это те же самые данные, которые были сохранены всего 1 час назад. Проблема началась вчера. Таким образом, это должны быть ТОЧНЫЕ одинаковые данные. \
Но он работает.
Ответ 21
Я пробовал все, что здесь было сказано. Ничего не получилось. Кажется, что я как-то импортировал Info.plist дважды. Чтобы исправить это, я выбрал проект и нажал кнопку "Проверить настройки". Впоследствии он работает для меня.
Ответ 22
После полудня эксперимента, я думаю, это означает, что отладчик не может найти ваш исполняемый файл для запуска. Я думаю, что это важное отличие от предыдущих ответов, потому что это основная причина, которая может иметь множество симптомов. В моем случае он не смог согласовать приложения Info.plist для пользовательской сборки, где мы копировали plist для сборки. Я изменил настройку сборки на Alt-Info.plist для AltDebug и исправил ее. Также подразумевалось не больше копирования.
Ваша основная причина может быть иной, поэтому ключевой вывод - думать о том, почему Xcode может не найти ваше построенное приложение.
Ответ 23
Вы будете рады узнать, что эта проблема имеет очень простое решение. Выберите Info.plist в дереве навигатора проекта и убедитесь, что он не назначен цели. Я подтвердил, что это правильное решение. Если вы создаете iOS 6 или более раннюю версию, вам также может потребоваться добавить armv6 в поддерживаемые архитектуры.
Ответ 24
У меня была эта проблема после обновления до Mountain Lion и XCode 4.4.1 для проекта OSX.
Чтобы решить эту проблему, мне пришлось обновить цель развертывания до 10,5 или выше; он был установлен на 10.4 и выше.
Ответ 25
Вы должны найти в "Activity Monitor" процесс Xcode и убить его! Я просто сделал это, чтобы решить подобную проблему!
Ответ 26
У меня возникла эта проблема после случайного удаления папки "Ресурсы", когда я добавил ее снова в проект, Bam!
Я также использую Mountain Lion и XCode 4.4!
пытаясь выяснить, что вызывает это, но, похоже, оно воспроизводится при удалении, а затем добавляет файл info.plist! может кто-нибудь подтвердить это?
Ответ 27
У меня была такая же проблема после двух событий:
- Я обновил до версии 3.0 SDK для Facebook.
- Я обновил свой OSX (с незначительным обновлением версии).
Единственное исправление, отработанное мной, заключалось в добавлении armv7s (разумеется, "s" в конце!!!)
Как было предложено здесь:
fooobar.com/questions/97407/...
Ответ 28
Еще одно вариантное решение: после попытки всего всего в списке выше я исправил это, обратившись к предупреждению о том, что путь TestFlightSDK1 не найден. Для этого я удалил соответствующий путь из путей поиска заголовков (настройки сборки > пути поиска) и удалил TestFlightSDK, и теперь все будет работать нормально.
Ответ 29
У меня было это от начала, и похоже, что проблема заключается в том, что эмулятор не может обрабатывать виртуальные смарт-карты. К сожалению, я просто использовал свой Android-телефон, подключенный через USB.
Ответ 30
Извлеките Info.plist из этапа сборки ресурса Copy Bundle. Это сработало для меня!