Устройство только для сборки нельзя использовать для запуска этой цели


86

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

Устройство только для сборки не может использоваться для запуска этой цели.

Поддерживаемые устройства iOS недоступны. Подключите устройство для запуска приложения или выберите смоделированное устройство в качестве места назначения.


Если вы используете устройство и у вас есть учетная запись разработчика Apple, удалите приложение с устройства, а затем запустите его.
BollMose

Ответы:


78

добавить -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'в свойxcodebuild


7
Объяснение: Xcode пытается построить с помощью универсального устройства iOS, но тест должен быть построен на симуляторе.
Адриана

7
Полная и рабочая команда:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Цзяньсинь Гао

/ usr / bin / xcodebuild - это двоичный файл. Вероятно, вам не следует его изменять.
Пер Кестед Аронссон,

Почему вы хотите его изменить?
Quver 07

Вам не нужно добавлять это в xcodebuild. Все, что вам нужно, это запустить эту команду с параметрами
Quver

44

Возможно, схема переключилась на универсальное устройство. Попробуйте еще раз выбрать подключенное устройство в меню «Схема»:

Изображение меню


18

Ниже мой путь

Выберите проект -> Общие -> Информация о развертывании -> Цель развертывания -> выберите более раннюю версию введите описание изображения здесь


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

7

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

и моим решением проблемы является выбор параметров сборки ---> Развертывание -----> Цель развертывания IOS ----> выберите более низкую версию, например 8.0,

и я обнаружил, что симулятор вышел, и его можно выбрать.


У вас установлены симуляторы с более новой версией ОС? Перейдите в Xcode -> Настройки -> Загрузки, чтобы увидеть список совместимых устаревших сред выполнения симулятора.
Lepidopteron

7

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

Команда списка мест назначения

xcodebuild test -destination 'platform=iOS Simulator' -workspace Register.xcworkspace -scheme ThatTestTarget

Пример вывода

Available destinations for the "ThatTestTarget" scheme:
    { platform:iOS Simulator, id:145A9B7E-B336-4819-8059-2FFEC408E05E, OS:11.1, name:iPad (5th generation) }
    { platform:iOS Simulator, id:69ABAF6F-ADA3-4E38-AC97-D71001447663, OS:9.3, name:iPad 2 }
    { platform:iOS Simulator, id:550E2F18-406D-4586-84BB-E48F1D704F27, OS:10.3.1, name:iPad Air }
    { platform:iOS Simulator, id:94734F1C-775F-40FA-9015-8196C08805EF, OS:11.1, name:iPad Air }
    { platform:iOS Simulator, id:1DB953DD-CD97-4EC7-8006-BCF01DF3E63F, OS:11.1, name:iPad Air 2 }
    { platform:iOS Simulator, id:DE3072DA-2E31-423D-9D77-220626F8B90A, OS:11.1, name:iPad Pro (9.7-inch) }
    { platform:iOS Simulator, id:3B5D18DB-13B5-4F28-B654-7D2ECDD1F6F0, OS:11.1, name:iPad Pro (10.5-inch) }
    { platform:iOS Simulator, id:A4225E3A-512C-4F42-ADD9-1E7E448C4D27, OS:11.1, name:iPad Pro (12.9-inch) }
    { platform:iOS Simulator, id:684FF1BA-8784-4B7C-B4E5-5231772F0FAC, OS:11.1, name:iPad Pro (12.9-inch) (2nd generation) }

Заменить двоеточие на знаки равенства, удалить пробелы, игнорировать идентификатор

Итак, если вы хотите использовать это место назначения:

platform:iOS Simulator, id:684FF1BA-8784-4B7C-B4E5-5231772F0FAC, OS:11.1, name:iPad Pro (12.9-inch) (2nd generation)

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

platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)

Тогда вся команда будет такой:

xcodebuild test -destination 'platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)' -workspace Register.xcworkspace -scheme ThatTestTarget

4

Вы строите для Xcode "Build Only Device", которое компилирует приложение. для процессора ARM (тогда как компиляция для симулятора нацелена на процессор Intel на вашем Mac).

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


Я не называю себя ладьей, потому что у меня хорошо получается ... Спасибо, 2 часа потрачены впустую, ха ....
yrpalnoob

3

В XCode 8.3.2 у меня было это сообщение об ошибке после того, как я попытался запустить приложение на заблокированном устройстве. Я разблокировал и повторно подключил по запросу, но «Устройство только для сборки не может использоваться для запуска этой цели». появилось сообщение.

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


2

Что стоит, если вы получите сообщение об ошибке A build only device cannot be used to run this targetи увидите в навигаторе проблем этот текст:

ProjectName
Target Integrity:
цель развертывания iOS «XX.X»
новее, чем SDK «iOS YY.Y» в
целевом ProjectName

то проблема в том, что для проекта требуется iOS SDK новее, чем та, которая доступна в вашей версии Xcode. Вы найдете эту проблему, скажем, в проектах, использующих новые функции / бета-версии iOS SDK, такие как ARKit.

Решение состоит в том, чтобы загрузить новейшую бета-версию Xcode , которая должна поддерживать закрытый выпущенный iOS SDK, который требуется приложению. Если у вас последняя версия Xcode, попробуйте найти целевую iOS в Preferences -> Components -> Simulators.


2

Если вы используете cordova / Ionic, перейдите в раздел «Продукты» -> «Назначение» -> «Выберите цель» и запустите повторно.


1

Модификация ответа @Quver. В последней версии Xcode (8.3) параметры целевой команды следует указывать в двойных кавычках. Одиночные кавычки у меня не работали

добавить -destination "platform=iOS Simulator,name=iPhone 7"в свойxcodebuild

Я не упомянул версию ОС в приведенной выше команде, потому что, когда будет выпущена более новая версия iOS, эта команда с помощью ошибки сообщит, что это устройство не найдено. Так что версию ОС лучше не давать


1

В моем случае это произошло, когда я выбрал универсальное устройство iOS и попытался «собрать» его, чтобы опубликовать его в AppStore.
Но вместо этого я должен был выбрать Продукт -> Архив.


0
  1. Я подал заявку на получение нового AppleID и добавил его в «Xcode-> Preferences-> Account», чтобы решить эту проблему. (Xcode 7.3)
  2. В то же время я удалил исходный AppleID в «Xcode-> Preferences-> Account», потому что он больше не был платным и не мог добавлять новые устройства.

0

В моем случае вещи xcodebuild не работали.

Вот что я решил.

Я удалил свою учетную запись Apple и повторно установил (вход в систему) в предпочтении xcode, и это было решено.

пс. на iphone 10.1 мне нужно было нажать кнопку Trust в General> Device Management> account info> Trust App


0

Я исправил эту проблему для эмулятора,

Сначала проверьте свой список эмуляторов

Окно> Устройства и симуляторы

после выберите любое устройство и нажмите Проверить версию ОС

Если у вас только ОС Apple Watch, вам следует загрузить новый симулятор IOS.

и нажмите "Загрузить другие среды выполнения симулятора".

выберите правильный симулятор IOS и загрузите его.


0

Я исправил эту проблему, перейдя в настройки проекта, и в разделе «Цели» мне пришлось установить цель тестов для правильной команды.


0

Что ж, если вы хотите получить список доступных мест назначения, вызовите xcodebuild и передайте параметр командной строки -showdestinations, и он напечатает допустимые параметры, из которых вы можете выбрать:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget

0

Я пробовал почти все, что описано выше, включая перезапуск XCode, ни один из них у меня не работал. Я решил эту проблему, просто перезапустив свой Mac . Да, классическое решение.

Примечание: эта проблема возникла с моим XCode после того, как он запросил у меня пароль для Mac, вероятно, после автоматического обновления.


0

Для xcode v11:

Я столкнулся с этой проблемой при попытке создать архив моего проекта. Я пытался нажать «Сборка», когда устройство было настроено на «Обычное устройство iOS», но правильные шаги были:

  1. Установите устройство на «Обычное устройство iOS»
  2. Перейдите в Product -> Archive (не нажимайте Build! )

0

Я столкнулся с тем же сообщением об ошибке. Вот что я испытал и сделал до сих пор;

Шаг 1. Проверьте свою цель.

Моя текущая цель - iOS 13.2. Отсюда вы не увидите, какие версии сейчас установлены на вашем компьютере.

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

Шаг 2. Проверьте доступные версии на своем локальном

  • Щелкните Generic IOS Device

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

  • Отобразится раскрывающееся меню, содержащее выбор Загрузить симуляторы ...
  • Если выбор « Загрузить симуляторы ...» не отображается, вам нужно опустить цель. В моем случае из 13.2 я сделал 13.0 (это зависит от вашего текущего XCode), затем повторите шаг 2 еще раз.
  • Отсюда я могу видеть выбор Download Simulators ...
  • Выберите это

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

  • Теперь вы увидите, какие у вас есть доступные версии
  • Отсюда вы можете выбрать загрузку или просто использовать имеющуюся у вас версию (ту, которая выбрана)

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

Шаг 3. Измените цель IOS соответствующим образом

  • Теперь, когда вы уже знаете, какие версии симулятора у вас локально доступны, вы можете изменить цель IOS.
  • В моем случае я предпочитаю использовать IOS 11 (только для этого образца)
  • Затем я меняю цель

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

  • Снова щелкните Generic IOS Device

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

  • Отсюда теперь вы можете выбрать любой симулятор под этой IOS.

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

Я не эксперт, я просто хотел поделиться своим опытом и надеюсь, что это может кому-то помочь.


-1

У меня была совсем другая проблема. По какой-то причине мое приложение « Устройства » было настроено на универсальную сборку, а не на iPhone . Когда я переключил его на iPhone, все заработало. Никаких дополнительных настроек не требовалось.


-2

Это сработало для меня.

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

Продукт> Чистый.

Затем соберите устройство, выбранное из активных схем.

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