PC パソコン

Xcode「A build only device cannot be used to run this target」の解決方法

Xcodeで実行しようとしたときに「A build only device cannot be used to run this target. Please select an available device or choose a simulated device as the destination.」と表示される場合、選択中のRun Destinationがビルド専用の汎用宛先になっているか、選択したSchemeを実行できる具体的なSimulator・実機をXcodeが利用可能と判定できていません。本記事では、設定ミスとXcode側の不調を切り分けながら、安全な順序で直す方法を解説します。

結論:具体的な実行先とアプリのSchemeを選ぶ

まずXcode上部のScheme/実行先メニューを開き、Any iOS Device (arm64)やAny iOS Simulator Deviceではなく、「iPhone 17 Pro (iOS 27.0)」のように機種名とOSが示されたSimulator、または接続済みの実機を選択します。さらに、SchemeにはFrameworkやLibraryではなく、起動可能な.appを生成するアプリターゲットを選びます。

重要:「Any … Device」は複数機種向けのビルドやArchiveには使えますが、実際にアプリを起動する端末ではありません。Appleの公式ガイドも、実行時にはSchemeを選んだうえで具体的なSimulatorまたは実機をRun Destinationに指定するよう案内しています。

主な原因と適用条件

  • 汎用のビルド専用宛先を選択している:最も一般的な原因です。BuildやArchiveはできてもRunはできません。
  • 実行できないSchemeを選んでいる:Framework、Static Library、Package、またはテスト用ターゲットには単独で起動するアプリがありません。
  • 対応するSimulator Runtimeがない:対象プラットフォームのRuntimeが未導入、ダウンロード中、破損、または無効になっていると、具体的な実行先が選べません。
  • Deployment TargetとOSが一致しない:アプリの最小OSバージョンより古いSimulatorや実機は実行先にできません。Supported PlatformsやDevice Familyの不一致でも同様です。
  • 実機の準備が未完了:ペアリング、Developer Mode、署名、端末登録、OSとXcodeの互換性に問題がある場合があります。
  • Xcodeの実行先判定が不調:具体的なSimulatorを選んでいるのに即座に同じエラーが出る例もあります。

推奨する解決手順

1. アプリSchemeと具体的な端末を選び直す

  1. Xcode上部のSchemeメニューで、起動したいアプリのSchemeを選びます。
  2. 右側のRun Destinationから、機種名とOSバージョンが表示されたSimulatorまたは実機を選びます。
  3. Product > Run(Command+R)を実行します。

Schemeが一覧にない場合は、Product > Scheme > Manage SchemesでアプリSchemeを有効化または再作成します。Scheme EditorのRunアクションでは、Executableが目的のアプリになっていることも確認してください。

2. Xcodeが認識する実行先を確認する

Terminalで利用可能な宛先を確認します。プロジェクト名とScheme名は自分の環境に置き換えてください。

xcodebuild -project MyApp.xcodeproj   -scheme MyApp   -showdestinations

xcrun simctl list devices available

-showdestinationsに目的の端末が出ない場合は、Scheme、Supported Platforms、Deployment Target、Runtimeのいずれかが合っていません。ワークスペースを使うプロジェクトでは、-projectの代わりに-workspace MyApp.xcworkspaceを指定します。

3. Simulator Runtimeを導入・確認する

Xcode > Settings > Componentsを開き、対象プラットフォームのRuntimeをインストールします。Appleの公式ドキュメントでは、Components画面のほか、次のコマンドでもプラットフォームを取得できます。

xcodebuild -downloadPlatform iOS

インストール完了後、Device HubまたはWindow > Devices and Simulatorsで具体的なSimulatorを作成し、再びRun Destinationに選びます。ダウンロード中はビルドや実行ができないため、完了を待ってください。

4. Deployment Targetと対応プラットフォームを合わせる

アプリターゲットのGeneral > Minimum Deployments、またはBuild SettingsのDeployment Targetを確認します。たとえば最小iOSが27.0なら、iOS 26.xのSimulatorでは実行できません。値を下げる場合は、使用APIがそのOSで利用可能かも確認してください。

複数ターゲットがある場合は、アプリ、Extension、依存Frameworkの設定を混同しないようにします。RunするSchemeがアプリターゲットを含み、対象プラットフォームをサポートしていることが重要です。

5. 実機の場合は接続とDeveloper Modeを確認する

実機をロック解除し、可能なら最初はUSB接続でペアリングを完了します。Developer Modeを有効にし、XcodeのSigning & CapabilitiesでTeamと自動署名を確認します。Appleの公式ガイドでは、実機をRun Destinationに選ぶと、自動署名が端末登録と開発用プロファイル作成を行います。

6. 具体的なSimulatorでも失敗するときの復旧

  1. XcodeとDevice Hub/Simulatorを終了して再起動します。
  2. 別のRuntime・別のSimulatorで再現するか確認します。
  3. 問題のSimulatorを削除して、同じRuntimeから作り直します。
  4. 最新の安定版Xcodeへ更新します。複数のXcodeがある場合は、使用中のDeveloper Directoryも確認します。
xcode-select -p
xcodebuild -version
xcrun simctl shutdown all

DerivedData削除はビルド生成物の不整合には有効ですが、このエラーがRun Destinationの選択だけで起きている場合は第一選択ではありません。必要な場合のみProduct > Clean Build Folderから試してください。

Xcode 26.3で報告されたケース

Apple Developer Forumsには、Xcode 26.3で具体的なSimulatorを選択しているにもかかわらず、すべての実行先がbuild-onlyとして扱われ、Command+Bは成功する一方でCommand+Rが失敗したというユーザー報告があります。投稿者の環境ではScheme再作成やDerivedData削除でも改善せず、コマンドラインでのビルド・インストール・起動は成功しています。

これはAppleのリリースノートで既知問題や修正済みとして明示された情報ではなく、2026年9月17日時点でAppleが特定の修正版を示したことも確認できません。したがって「Xcode 26.3固有の確定不具合」と断定せず、一般的な設定を確認した後の切り分け材料として扱ってください。更新する場合は、プロジェクトの互換性を確認したうえで最新の安定版を使用します。

代替策

XcodeのUIだけが誤判定し、xcodebuild -showdestinationsには有効なSimulatorが出る場合、調査中の一時策としてコマンドライン実行が使えます。

xcodebuild -project MyApp.xcodeproj   -scheme MyApp   -destination 'platform=iOS Simulator,name=iPhone 17 Pro'   build

xcrun simctl boot 'iPhone 17 Pro'
xcrun simctl install booted /path/to/MyApp.app
xcrun simctl launch booted com.example.MyApp

アプリの生成先やBundle Identifierは環境に合わせて変更してください。これは根本修正ではなく、XcodeのUI経路だけに問題があるか確認するための代替策です。

確認方法

  • Toolbarの実行先に「Any」ではなく具体的な機種名とOSが表示される。
  • 選択中のSchemeが起動可能なアプリを生成する。
  • xcodebuild -showdestinationsに対象端末が表示される。
  • xcrun simctl list devices availableでSimulatorがavailableになっている。
  • Product > Runでビルド後にアプリがインストール・起動する。

注意点

  • Archive用途の汎用Destinationを削除する必要はありません。Run時だけ具体的な端末へ切り替えます。
  • Deployment Targetを無理に下げると、古いOSで利用できないAPIによる別の問題が生じます。
  • Simulatorの全消去やRuntimeの再インストールはデータを失うため、端末選択と設定確認の後に行います。
  • ユーザーフォーラムの再現報告と、Appleが公式に認定した既知問題・修正版は区別してください。

まとめ

「A build only device cannot be used to run this target」は、多くの場合、汎用の「Any … Device」または実行不能なSchemeを選んでいることが原因です。最初にアプリSchemeと具体的なSimulator/実機を選び、次にRuntime、Deployment Target、実機準備を確認してください。具体的な端末でも失敗する場合は、-showdestinationsとsimctlでXcodeの認識状態を確認し、別Runtimeや最新安定版Xcodeで切り分けます。

公式情報