エディタとXcodeでのビルドの違い

iOSアプリ開発におけるエディタ(VS Codeなど)でのビルドと、Xcodeでのビルドの違いをGPTに聞いてみた。

特徴Flutter (flutter run)Xcode (Cmd + R)
目的FlutterアプリをDartレイヤーから直接実行iOSネイティブとしてアプリをビルド&実行
ビルド形式Flutterが自動でネイティブビルド&起動完全にXcodeが管理するネイティブビルド
実行結果DevTools接続・Flutter Hot Reload が可能通常のiOSアプリ起動(Flutterは裏側)
速度少し遅い(Flutter→Xcode→実機)速い(Xcodeが直でビルドして実機へ)
ログ出力flutter run コンソールにFlutterログが出るXcodeのConsoleにiOS/Flutterログが出る
開発向け🔥 Flutterメインの開発向き(UI/ロジック確認)🛠️ ネイティブの設定確認(署名や通知など)
依存関係flutter pub get + pod install が必要Runner.xcworkspace が正しく開けていればOK

✅ 具体的な使い分け

🟩 Flutter CLI(エディタ)でのビルド(flutter run -d <device>

✅ 向いている用途:

  • FlutterのUI・ロジックの変更を即確認したい(Hot Reload可能
  • 開発中の実機動作確認
  • DevToolsでDartパフォーマンスなどを確認したいとき

⚠ 注意点:

  • 実機に初めて接続する場合、Apple ID署名の問題で止まることあり
  • ネイティブエラーの詳細までは掴みにくい(Xcode Consoleで見る必要あり)

🟦 Xcode でのビルド(Cmd + R

✅ 向いている用途:

  • 通知、カメラ、パーミッションなどiOS固有機能の確認
  • ビルド署名(Provisioning Profile) の設定確認・トラブル対応
  • App Store提出前のReleaseビルドの最終チェック

⚠ 注意点:

  • Dartレベルのデバッグがしにくい(Hot Reload不可)
  • .xcodeproj を開くと Pods が反映されずビルド失敗の原因に

✅ 補足:FlutterはXcodeを裏で使っている

  • flutter run を実行すると、Flutterが自動的に Xcode のビルドコマンド (xcodebuild) を呼び出しています
  • そのため、「Flutterから実機ビルド=Xcode経由ではあるが、自動化されている」と考えるのが正確です

🎯 まとめ:実機指定のビルドの違い

観点VS Code / Flutter CLIXcode
実行コマンドflutter run -d <device>Xcode GUIの「Cmd + R」
Hot Reload✅ あり❌ なし
Console 出力Dartログ中心(flutter側)ネイティブログ中心(Xcode Console)
DevTools✅ あり❌ なし
権限/署名周り複雑(自動署名頼り)署名や証明書を詳細に確認できる
使用する設定pubspec.yaml, PodfileSigning & Capabilities, Build Phases