Для запуску цієї цілі не можна використовувати пристрій лише для збірки


85

Я отримую цю помилку під час спроби протестувати програму.

Для запуску цієї цілі не можна використовувати пристрій лише для збірки.

Немає підтримуваних пристроїв 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 - це двійковий файл. Ймовірно, вам не слід його змінювати.
За допитуваного Аронсона

Чому ви хочете його змінити?
Квервер

Вам не потрібно додавати це в xcodebuild. Все, що вам потрібно, це запустити цю команду з параметрами
Quver

44

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

Зображення меню


18

Внизу мій шлях

Виберіть проект -> Загальне -> Інформація про розгортання -> Ціль розгортання -> виберіть нижчу версію введіть тут опис зображення


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

7

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

і моє рішення проблеми полягає у виборі Параметри побудови ---> Розгортання -----> Ціль розгортання IOS ----> виберіть нижчу версію, наприклад 8.0,

і я виявив, що симулятор вийшов і його можна вибрати.


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

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 "Збудувати пристрій лише", який складає програму. для процесора ARM (тоді як компіляція для симулятора націлена на процесор Intel на вашому Mac.)

Підключіть пристрій і виберіть його зі спливаючого вікна активної схеми, або виберіть один із тренажерів, і ви повинні бути готові до роботи.


Я не називаю себе граком, тому що я добре в цій
справі

3

З XCode 8.3.2 у мене з’явилося це повідомлення про помилку після спроби запустити програму на заблокованому пристрої. Я розблокував і повторно підключив за запитом, але "Для побудови цієї цілі не можна використовувати пристрій лише для збірки". повідомлення.

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


2

Для чого це варто, якщо ви отримаєте помилку A build only device cannot be used to run this targetта побачите цей текст у навігаторі випусків:


Цілісність цілі ProjectName :
Ціль розгортання iOS 'XX.X'
новіша за SDK 'iOS YY.Y' у
цільовій ProjectName

тоді проблема полягає в тому, що для проекту потрібен iOS SDK, який є новішим, ніж доступна у вашій версії Xcode. Цю проблему ви знайдете, скажімо, у проектах, які використовують нові / бета-версії функціональних можливостей SDK для iOS, такі як 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, ця команда через помилку повідомляє, що цей пристрій не знайдено. Тому краще не давати версію ОС


0
  1. Я подав заявку на новий AppleID і додав його до «Xcode-> Налаштування-> Обліковий запис», щоб вирішити цю проблему. (Xcode 7.3)
  2. Одночасно я видалив оригінальний AppleID у "Xcode-> Налаштування-> Обліковий запис", оскільки це вже не був платним рахунком і не міг додати нові пристрої.

0

У моєму випадку речі xcodebuild не працювали.

Ось що я вирішив.

Я видалив свій обліковий запис apple і повторно встановив (вхід) у налаштування xcode, і це було вирішено.

ps. на iphone 10.1 мені потрібно було натиснути кнопку Довіра на Загальне> Керування пристроями> Інформація про обліковий запис> Довіра програми


0

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

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

Вікно> Пристрої та імітатори

після виберіть будь-який пристрій і натисніть кнопку перевірити версію ОС

Якщо у вас лише ОС Apple Watch, вам слід завантажити новий IOS Simulator

і натисніть завантажити більше часу роботи симулятора ..

виберіть свій правильний IOS Simulator і завантажте його.


0

Я вирішив цю проблему, перейшовши до налаштувань проекту, і в розділі "Цілі" мені довелося встановити цільову кількість тестів для правильної команди.


0

Ну, якщо ви хочете отримати список доступних пунктів призначення, тоді зателефонуйте xcodebuild і перейдіть у параметр командного рядка -showdestinations, і він надрукує дійсні варіанти для вибору з:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget

0

Я спробував майже все вище, включаючи перезапуск XCode, жоден з них не працював у мене. Я вирішив цю проблему, просто перезапустивши свій Mac . Так, класичне рішення.

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


0

Для xcode v11:

Я зіткнувся з цим питанням, намагаючись створити архів свого проекту. Я намагався натиснути "Створити", коли для пристрою було встановлено значення "Загальний пристрій iOS", але правильними кроками були:

  1. Встановити для пристрою "Загальний пристрій iOS"
  2. Перейдіть до Продукт -> Архів ( пропустіть натискання Build! )

0

У моєму випадку це сталося, коли я вибрав загальний пристрій iOS і спробував "побудувати", щоб опублікувати його в AppStore.
Але я мав замість цього вибрати Продукт -> Архів


0

Я зіткнувся з тим самим повідомленням про помилку. Ось, що я пережив і зробив дотепер;

Крок 1: Перевірте свою мету.

Моя поточна ціль - IOS 13.2. Звідси ви не побачите, які версії у вас зараз є на вашому комп'ютері.

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

Крок 2: Перевірте доступні версії на вашому локальному

  • Клацніть Загальний пристрій IOS

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

  • З’явиться випадаюче меню, що містить вибір Завантажити симулятори ...
  • Якщо вибір " Завантажити симулятори ..." не видно, вам слід опустити ціль. У моєму випадку з 13.2 я зробив 13.0 (це залежить від вашого поточного XCode), а потім повторіть крок 2 ще раз
  • Звідси я бачу вибір Завантажити симулятори ...
  • Виберіть його

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

  • Тепер ви побачите, які доступні версії у вас є
  • Звідси ви можете завантажити або просто скористатися вашою версією (вибраною)

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

Крок 3: Відповідно змініть ціль IOS

  • Тепер, коли ви вже знаєте, які доступні версії симулятора у вас є локально, тепер ви можете змінити ціль IOS.
  • У моєму випадку я вирішив використовувати IOS 11 (Тільки для цього зразка)
  • Потім міняю ціль

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

  • Знову клацніть загальний пристрій IOS

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

  • Відтепер ви можете вибрати будь-який симулятор під цим IOS

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

Я не фахівець, я просто хотів поділитися своїм досвідом і сподіваюся, це може комусь допомогти.


-1

У мене була зовсім інша проблема. Чомусь для мого додатка " Пристрої " було встановлено універсальну збірку на відміну від iPhone . Коли я перейшов на iPhone, все працювало. Не потрібні додаткові налаштування.


-2

Це спрацювало для мене.

Ви намагаєтеся запустити на пристрої, коли ви вже створили його за іншою схемою. Йти до

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

Потім будуйте за допомогою пристрою, вибраного з активних схем.

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