Do uruchomienia tego celu nie można użyć urządzenia tylko do kompilacji

85

Ten błąd pojawia się, gdy próbuję przetestować aplikację.

Do uruchomienia tego celu nie można użyć urządzenia tylko do kompilacji.

Nie są dostępne żadne obsługiwane urządzenia z systemem iOS. Podłącz urządzenie, aby uruchomić aplikację lub wybierz symulowane urządzenie jako miejsce docelowe.

yrpalnoob
źródło
Jeśli używasz urządzenia i masz konto programisty Apple, usuń aplikację ze swojego urządzenia, a następnie uruchom ją.
BollMose

Odpowiedzi:

78

dodaj -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'do swojegoxcodebuild

Quver
źródło
7
Wyjaśnienie: Xcode próbuje skompilować za pomocą ogólnego urządzenia iOS, ale test musi zostać zbudowany na symulatorze.
Adriana,
7
Kompletne i działające polecenie:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Jianxin Gao
/ usr / bin / xcodebuild to plik binarny. Prawdopodobnie nie powinieneś go modyfikować.
Per Quested Aronsson,
Dlaczego chcesz to zmodyfikować?
Quver
Nie musisz tego dodawać do xcodebuild. Wszystko, czego potrzebujesz, to uruchomić to polecenie z parametrami
Quver
44

Może Schemat został przełączony na urządzenie ogólne. Spróbuj ponownie wybrać podłączone urządzenie z menu Schemat:

Obraz menu

Replika
źródło
18

Poniżej moja droga

Wybierz projekt -> Ogólne -> Informacje o wdrożeniu -> Cel wdrożenia -> wybierz niższą wersję wprowadź opis obrazu tutaj

米米米
źródło
1
Ten przypadek jest przydatny, gdy importujesz projekt z celem wdrożenia wyższym niż lokalny cel wdrożenia, obniżenie go może rozwiązać problem
Parama Dharmika
7

napotykam problem polegający na tym, że można wybrać tylko „Ogólne urządzenie iOS”. a kiedy uruchamiam, pojawia się komunikat „Urządzenie przeznaczone tylko do kompilacji nie może być używane do uruchomienia tego celu. Nie są dostępne żadne obsługiwane urządzenia z systemem iOS. Podłącz urządzenie, aby uruchomić aplikację lub wybierz symulowane urządzenie jako miejsce docelowe”

a moim rozwiązaniem problemu jest wybranie opcji Build Settings ---> Deployment -----> IOS Deployment Target ----> wybierz niższą wersję, taką jak 8.0,

i stwierdziłem, że symulator wyszedł i można go wybrać.

Mr.yl
źródło
Czy masz symulatory z zainstalowaną nowszą wersją systemu operacyjnego? Idź do Xcode -> Preferencje -> Pobieranie, aby wyświetlić listę zgodnych starszych środowisk wykonawczych symulatora.
Lepidopteron
7

Musisz uzyskać listę prawidłowych miejsc docelowych. Aby to zrobić, określ błędną parę klucz-wartość, a xcodebuild wypluje działające kombinacje:

Polecenie Lista miejsc docelowych

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

Przykład wyników

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) }

Zmień dwukropki na znaki równości, usuń spacje, zignoruj ​​identyfikator

Więc jeśli chcesz skorzystać z tego miejsca docelowego:

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

Zmień dwukropki na przecinki, usuń spacje, usuń identyfikator, aby otrzymać ten ciąg:

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

Wtedy całe polecenie wyglądałoby tak:

xcodebuild test -destination 'platform=iOS Simulator,OS=11.1,name=iPad Pro (12.9-inch) (2nd generation)' -workspace Register.xcworkspace -scheme ThatTestTarget
Dan Rosenstark
źródło
4

Budujesz dla Xcode „Build Only Device”, które kompiluje aplikację. dla procesora ARM (podczas gdy kompilacja dla symulatora jest ukierunkowana na procesor Intel na komputerze Mac).

Podłącz urządzenie i wybierz je z wyskakującego okienka aktywnego schematu lub wybierz jeden z symulatorów i powinieneś być gotowy.

Walt
źródło
Nie nazywam siebie wieżą, ponieważ jestem dobry w tym ... Dziękuję 2 zmarnowane godziny ha ...
yrpalnoob
3

W XCode 8.3.2 pojawił się ten komunikat o błędzie po próbie uruchomienia aplikacji na zablokowanym urządzeniu. Odblokowałem i ponownie podłączyłem zgodnie z żądaniem, ale „Urządzenie tylko do kompilacji nie może być używane do uruchomienia tego celu”. pojawiła się wiadomość.

Po prostu zmieniłem cel na symulator i zmieniłem go z powrotem - to rozwiązało mój problem.

catanore
źródło
2

Co warto, jeśli A build only device cannot be used to run this targetpojawi się błąd i zobacz w nawigatorze problemów następujący tekst:

ProjectName
Target Integrity:
cel wdrożenia iOS „XX.X” jest
nowszy niż SDK „iOS YY.Y” w
docelowym ProjectName

problem polega na tym, że projekt wymaga zestawu SDK systemu iOS nowszego niż wersja Xcode dostępna w Twojej wersji. Ten problem znajdziesz, powiedzmy, w projektach korzystających z nowych / beta funkcji iOS SDK, takich jak ARKit.

Rozwiązaniem jest pobranie najnowszej wersji beta Xcode , która powinna obsługiwać niepublicznie wydany iOS SDK, którego wymaga aplikacja. Jeśli masz najnowszy Xcode, spróbuj znaleźć docelowy system iOS w Preferences -> Components -> Simulators.

Daniel R. Livingston
źródło
2

Jeśli używasz Cordova / Ionic Idź do Produkty -> Miejsce docelowe-> Wybierz cel i uruchom ponownie

BenjaBoy
źródło
1

Modyfikacja odpowiedzi @ Quver. W najnowszej wersji Xcode (8.3) parametry polecenia destination należy podawać w cudzysłowach. Pojedyncze cudzysłowy nie działały dla mnie

dodaj -destination "platform=iOS Simulator,name=iPhone 7"do swojegoxcodebuild

Nie wspomniałem o wersji systemu operacyjnego w powyższym poleceniu, ponieważ po wydaniu nowszej wersji iOS to polecenie przejdzie przez błąd informujący, że to urządzenie nie zostało znalezione. Dlatego lepiej nie podawać wersji systemu operacyjnego

Bieg
źródło
0
  1. Złożyłem wniosek o nowy AppleID i dodałem go do „Xcode-> Preferencje-> Konto”, aby rozwiązać ten problem. (Xcode 7.3)
  2. W tym samym czasie usunąłem oryginalny AppleID w "Xcode-> Preferencje-> Konto", ponieważ nie było to już płatne konto i nie mogłem dodawać nowych urządzeń.
Zack Zhang
źródło
0

xcodebuild rzeczy nie działały w moim przypadku.

Oto, co rozwiązałem.

Usunąłem moje konto Apple i ponownie ustawiłem (logowanie) w preferencjach xcode i to zostało rozwiązane.

ps. Na iPhonie 10.1 musiałem nacisnąć przycisk Zaufaj na Ogólne> Zarządzanie urządzeniami> Informacje o koncie> Zaufaj aplikacja

jungwon jin
źródło
0

Naprawiłem ten problem dla emulatora,

Najpierw sprawdź listę emulatorów

Okno> Urządzenia i symulatory

po wybraniu dowolnego urządzenia i kliknięciu sprawdź wersję systemu operacyjnego

Jeśli masz tylko Apple Watch OS, powinieneś pobrać nowy symulator IOS

i kliknij pobierz więcej uruchomień symulatora.

wybierz właściwy symulator IOS i pobierz go.

Berat Eyüboğlu
źródło
0

Rozwiązałem ten problem, przechodząc do ustawień projektu i w sekcji „Cele” musiałem ustawić cel testów na właściwy zespół.

Lord Fresh
źródło
0

Cóż, jeśli chcesz uzyskać listę dostępnych miejsc docelowych, zadzwoń do xcodebuild i przekaż opcję wiersza poleceń -showdestinations, a wydrukuje prawidłowe opcje do wyboru:

xcodebuild -showdestinations -workspace Register.xcworkspace -scheme ThatTestTarget
C Johnson
źródło
0

Próbowałem prawie wszystkiego powyżej, w tym ponowne uruchomienie XCode, żaden z nich nie działał dla mnie. Rozwiązałem ten problem, po prostu ponownie uruchamiając komputer Mac . Tak, klasyczne rozwiązanie.

Uwaga dodatkowa: ten problem wystąpił w moim XCode po tym, jak zażądał ode mnie hasła do komputera Mac, prawdopodobnie po automatycznej aktualizacji.

Przetrząsać
źródło
0

Dla xcode v11:

Napotkałem ten problem podczas próby utworzenia archiwum mojego projektu. Próbowałem kliknąć „Kompiluj”, gdy urządzenie było ustawione na „Ogólne urządzenie iOS”, ale właściwe kroki były następujące:

  1. Ustaw urządzenie na „Ogólne urządzenie z iOS”
  2. Idź do Product -> Archive ( pomiń przycisk Build! )
Nieudolny filozof
źródło
0

W moim przypadku stało się tak, kiedy wybrałem urządzenie typu Generic iOS i próbowałem „skompilować”, aby opublikować je w AppStore.
Ale zamiast tego powinienem był wybrać Produkt -> Archiwum

Leo Droidcoder
źródło
0

Napotkałem ten sam komunikat o błędzie. Oto, czego doświadczyłem i zrobiłem do tej pory;

Krok 1: Sprawdź swój cel.

Moim obecnym celem jest IOS 13.2. Stąd nie zobaczysz, jakie wersje masz obecnie na swoim komputerze.

wprowadź opis obrazu tutaj

Krok 2: Sprawdź dostępne wersje w swoim lokalnym

  • Kliknij Ogólne urządzenie IOS

wprowadź opis obrazu tutaj

  • Spowoduje to wyświetlenie menu rozwijanego, które zawiera wybór pobierania symulatorów ...
  • W przypadku, gdy opcja Download Simulators ... nie jest widoczna, musisz obniżyć cel. W moim przypadku od 13.2 zrobiłem to 13.0 (to zależy od twojego obecnego XCode), a następnie powtórz krok 2 ponownie
  • Stąd mogę teraz zobaczyć Pobierz Symulatory ... wybór
  • Wybierz to

wprowadź opis obrazu tutaj

  • Zobaczysz teraz, jakie masz dostępne wersje
  • Stąd możesz pobrać lub po prostu użyć posiadanej wersji (tej, która jest wybrana)

wprowadź opis obrazu tutaj

Krok 3: odpowiednio zmień docelowy system IOS

  • Teraz, gdy wiesz już, jakie są dostępne wersje symulatora, który masz lokalnie, możesz teraz zmienić cel IOS.
  • W moim przypadku wybieram IOS 11 (tylko dla tej próbki)
  • Potem zmieniam cel

wprowadź opis obrazu tutaj

  • Ponownie kliknij Ogólne urządzenie IOS

wprowadź opis obrazu tutaj

  • Z tego miejsca możesz teraz wybrać dowolny symulator w ramach tego systemu IOS

wprowadź opis obrazu tutaj

Nie jestem ekspertem, chciałem tylko podzielić się swoim doświadczeniem i mam nadzieję, że to komuś pomoże.

newProgramm3r
źródło
-1

Miałem zupełnie inny problem. Z jakiegoś powodu moja aplikacja „ Urządzenia ” została ustawiona na wersję uniwersalną, a nie na iPhone'a . Kiedy przełączyłem go na iPhone'a, wszystko działało. Nie potrzebowałem żadnych dodatkowych ustawień.

Amir J.
źródło
-2

To zadziałało dla mnie.

Próbujesz uruchomić na urządzeniu, które zostało już zbudowane dla innego schematu. Iść do

Produkt> Wyczyść.

Następnie buduj z urządzeniem wybranym z aktywnych schematów.

C. Walther
źródło