ビルド専用デバイスを使用してこのターゲットを実行することはできません


86

アプリをテストしようとすると、このエラーが発生します。

ビルド専用デバイスを使用してこのターゲットを実行することはできません。

サポートされているiOSデバイスは利用できません。デバイスを接続してアプリケーションを実行するか、シミュレートされたデバイスを宛先として選択します。


デバイスを使用していて、Apple Developer Accountをお持ちの場合は、デバイスからアプリを削除してから実行してください。
BollMose

回答:


78

-destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'あなたに追加xcodebuild


7
説明:Xcodeは汎用iOSデバイスでビルドしようとしますが、テストはシミュレーターでビルドする必要があります。
アドリアーナ2016

7
完全で機能するコマンド:xcodebuild test -project YourProject.xcodeproj -scheme YourProject -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.3'
Jianxin Gao 2016

/ usr / bin / xcodebuildはバイナリファイルです。おそらく変更しないでください。
QuestedAronssonによる2017

なぜそれを変更したいのですか?
Quver 2017

これをに追加する必要はありませんxcodebuild。必要なのは、パラメーターを指定してこのコマンドを実行することだけです
Quver 2017

44

たぶん、SchemeはGenericデバイスに切り替えました。[スキーム]メニューから接続されているデバイスをもう一度選択してみてください。

メニュー画像


18

以下は私のやり方です

プロジェクト->一般->デプロイメント情報->デプロイメントターゲット->下位バージョンを選択します ここに画像の説明を入力してください


1
このケースは、展開ターゲットがローカル展開ターゲットよりも高いプロジェクトをインポートする場合に役立ちます。プロジェクトを低くすると、問題を解決できます
Parama Dharmika 2018

7

「汎用iOSデバイス」しか選べないという問題があります。実行すると、「ビルド専用デバイスを使用してこのターゲットを実行することはできません。サポートされているiOSデバイスは利用できません。デバイスを接続してアプリケーションを実行するか、シミュレートされたデバイスを宛先として選択してください」と表示されます。

この問題の解決策は、[ビルド設定] ---> [展開] -----> [IOS展開ターゲット] ----> 8.0などの下位バージョンを選択することです。

シミュレーターが出てきて、選択できることがわかりました。


新しいOSバージョンがインストールされたシミュレーターはありますか?[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) }

等号のコロンを変更し、スペースを削除し、IDを無視します

したがって、この宛先を使用する場合:

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

カンマのコロンを変更し、スペースを削除し、IDを削除すると、次の文字列が得られます。

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の「BuildOnlyDevice」用にビルドしています。ARMプロセッサ用(シミュレータ用にコンパイルすると、MacのIntel CPUがターゲットになります)。

デバイスを接続して、アクティブなスキームのポップアップから選択するか、シミュレーターの1つを選択すると、準備が整います。


私はこのようなものが得意なので、自分をルークとは呼びません...ありがとう2時間無駄になりました....
yrpalnoob 2015年

3

XCode 8.3.2では、ロックされたデバイスでアプリを実行しようとすると、このエラーメッセージが表示されました。要求に応じてロックを解除して再接続しましたが、「ビルド専用デバイスを使用してこのターゲットを実行することはできません」。メッセージが表示されました。

ターゲットをシミュレーターに変更して元に戻しただけで、問題は解決しました。


2

エラーが発生した場合の価値A build only device cannot be used to run this targetについては、Issuenavigatorで次のテキストを参照してください。

ProjectName
ターゲットの整合性:
iOSデプロイメントターゲット「XX.X」は

ターゲットProjectNameのSDK「iOSYY.Y」よりも新しい

問題は、プロジェクトに、ご使用のバージョンのXcodeで使用可能なものよりも新しいiOSSDKが必要なことです。この問題は、たとえば、ARKitなどの新しい/ベータ版のiOSSDK機能を利用するプロジェクトで発生します。

解決策は、Xcodeの最新のベータ版をダウンロードすることです。これは、アプリケーションが必要とする非公開のiOSSDKをサポートしている必要があります。最新のXcodeをお持ちの場合は、でターゲットiOSを見つけてみてくださいPreferences -> Components -> Simulators



1

@Quverの回答の変更。最新のXcodeバージョン(8.3)では、destinationコマンドのパラメーターを二重引用符で囲む必要があります。一重引用符は私にはうまくいきませんでした

-destination "platform=iOS Simulator,name=iPhone 7"あなたに追加xcodebuild

上記のコマンドでOSのバージョンについては触れていません。これは、新しいバージョンのiOSがリリースされると、このコマンドがエラーを介して、このデバイスが見つからないことを通知するためです。したがって、OSバージョンを提供しない方が良いです


1

私の場合、これは、汎用iOSデバイスを選択し、それをAppStoreに公開するために「ビルド」しようとしたときに発生しました。
しかし、代わりに[製品]-> [アーカイブ]を選択する必要がありました


0
  1. この問題を解決するために、新しいAppleIDを申請し、それを「Xcode-> Preferences-> Account」に追加しました。(Xcode 7.3)
  2. 同時に、「Xcode-> Preferences-> Account」で元のAppleIDを削除しました。これは、有料アカウントではなくなり、新しいデバイスを追加できなくなったためです。

0

私の場合、xcodebuildのものは機能していませんでした。

これが私が解決したことです。

Appleアカウントを削除し、xcode設定でリセット(ログイン)しましたが、これは解決されました。

ps。iPhone 10.1では、[一般]> [デバイス管理]> [アカウント情報]> [信頼アプリ]の[信頼]ボタンを押す必要がありました


0

エミュレータのこの問題を修正しました。

まず、エミュレータリストを確認します

ウィンドウ>デバイスとシミュレーター

任意のデバイスを選択し、[OSバージョンの確認]をクリックした後

Apple Watch OSしかない場合は、新しい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. 製品->アーカイブに移動します(ビルドを押すのをスキップします!

0

同じエラーメッセージが表示されました。これが私がこれまでに経験し、行ったことです。

ステップ1:ターゲットを確認します。

私の現在のターゲットはIOS13.2です。ここから、現在マシンにあるバージョンは表示されません。

ここに画像の説明を入力してください

ステップ2:ローカルで利用可能なバージョンを確認する

  • 汎用IOSデバイスをクリックします

ここに画像の説明を入力してください

  • これにより、ダウンロードシミュレータ...の選択を含むドロップダウンメニューが表示されます
  • Download Simulators ...の選択が表示されない場合は、ターゲットを下げる必要があります。私の場合、13.2から13.0にし(これは現在のXCodeによって異なります)、手順2をもう一度繰り返します。
  • ここから、ダウンロードシミュレーター...の選択を確認できます。
  • それを選択してください

ここに画像の説明を入力してください

  • これで、使用可能なバージョンがわかります。
  • ここから、ダウンロードするか、お持ちのバージョン(選択したバージョン)を使用するかを選択できます。

ここに画像の説明を入力してください

ステップ3:それに応じてIOSターゲットを変更します

  • ローカルで使用可能なシミュレータのバージョンがわかったので、IOSターゲットを変更できます。
  • 私の場合、IOS 11を使用することを選択します(このサンプルのみ)
  • 次に、ターゲットを変更します

ここに画像の説明を入力してください

  • もう一度汎用IOSデバイスをクリックします

ここに画像の説明を入力してください

  • ここから、そのIOSで任意のシミュレーターを選択できるようになりました

ここに画像の説明を入力してください

私は専門家ではありません。自分の経験を共有したかっただけです。これが誰かの助けになることを願っています。


-1

私はまったく別の問題を抱えていました。何らかの理由で、私のアプリ「デバイス」はiPhoneではなくユニバーサルビルドに設定されました。iPhoneに切り替えたところ、すべてうまくいきました。追加の設定は必要ありませんでした。


-2

これは私のために働いた。

別のスキーム用にデバイスをすでに構築しているときに、そのデバイスで実行しようとしています。に移動

製品>クリーン。

次に、アクティブなスキームから選択したデバイスを使用してビルドします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.