🐶

SweetPadとXcodeBuildMCPを利用してCursorでiOS開発をする

に公開

はじめに

CursorでiOS開発をするための環境構築について書きました。

SweetPadとXcodeBuildMCPを利用してiOS開発を実現します。

ある程度は快適にiOS開発をすることができる状態になっていると考えていますが、課題もあります。

前提として、本記事における、CursorでのiOS開発は、Mac OSかつXcodeがインストール済みの環境でないと動作しませんのでご注意ください!

アジェンダ

  1. Cursorをインストール
  2. CursorでSwiftを書けるようにする
  3. CursorでiOSプロジェクトをビルドできるようにする
  4. iOS開発をやりやすくするためのTips
  5. 残っている課題

1. Cursorをインストール

Homebrewでインストール

brew install cursor

Cursorの利用プランは3つあります。

  • 無料
  • Pro
  • Business

各プランの詳細は省きますが、無料版とPro版を利用する際は、「プライバシーモード」を有効にしておかないと、こちらで提供した情報が学習に利用されるっぽいので、気になる人は有効にしておいた方がいいでしょう。

これからインストールする人はインストール直後のセットアップでData Sharingの画面で選択できます。

既にインストール済みの人は、

  1. 画面左上のCursorをクリックし、
  2. Preferences → Cursor Settings → General -> Provacy mode
  3. Privacy modeのスイッチを enabled にします

2. CursorでSwiftを書けるようにする

Cursorの拡張機能である以下の2つを利用します。

  • SweetPad
    • CursorでiOS開発をできるようにするための便利ツールです。コード補完、シンボル解決、構文解析、コード整形、コンパイル、実行、デバッグ等の機能が使えるようになり、CursorがほとんどiOS開発のIDEとなります。
  • Swift
    • CursorでSwiftを扱えるようにするための言語サポートの拡張機能です

1. CursorのマーケットプレイスからSweetPadとSwiftを検索してインストールします

2. SweetPadのToolsで必要な外部ツールをインストールします

以下の4つをインストールします。

  • Homebrew
  • Swift-Format : コード整形
  • xcbeautify : ログの読みやすくしてくれる
  • xcode-build-server : ソースコードの自動補完

×マークはインストールできていないので、ターミナルアイコンをクリックしてインストールしてください。

インストールが成功したものは✅マークになっています。

3. Cursorで既存のXcodeのプロジェクトを開きます。

現状だとソースコードの参照が解決できずエラーになるかと思います。
この後解決していきます。

4. コマンドパレットから SweetPad: Generate Build Server Config を選択します。

初回はビルドスキームの選択肢が出るので任意のスキームを選択します。

5. プロジェクトルートにbuildServer.jsonが生成されたことを確認する。

このタイミングで先ほどの参照エラーが解決されるはずです。
定義元へのジャンプや参照元へのジャンプもできるようになっているはずです。

6. Swiftのコード整形に利用するフォーマッターを設定する

cmd + Shift + P でコマンドパレットを開き、Open User Settings (JSON)を選択する

以下のKey-Valueを追加する。
デフォルトのフォーマッターをSeetPadに設定し、ファイル保存時に自動で整形が実施されるようにする。
これでインデントのズレなどが自動で整形されるようになります。

{
  "[swift]": {
        "editor.defaultFormatter": "sweetpad.sweetpad",
        "editor.formatOnSave": true,
    }
}

以上でCursorでSwiftでの開発ができるようになりました。

3. CursorでiOSのプロジェクトをビルドできるようにする

XcodeBuildMCPというMCPサーバを利用してCursorからiOSプロジェクトをビルドできるようにします。
XcodeBuildMCPを利用することでCursor上でXcodeの各種機能を扱えるようになります。

https://github.com/cameroncooke/XcodeBuildMCP

1. Node.jsをインストール

brew install node

2. miseをインストール

brew install mise

3. 画面左上のCursorをクリックし、

Preferences → Cursor Settings → MCP → Add new global MCP server
mcp.jsonファイルが開かれるので、mcpServers内にXcodeBuildMCPのKey-Valueを追加します。

{
  "mcpServers": {
    "XcodeBuildMCP": {
      "command": "mise",
      "args": [
        "x",
        "npm:xcodebuildmcp@1.4.0",
        "--",
        "xcodebuildmcp"
      ],
      "env": {
        "SENTRY_DISABLED": "true"
      } 
    }
  }
}

4. 設定が完了すると以下のようになります

設定が成功していない場合はエラーになります。

Cursor上のチャットでXcodeBuildMCPを使用できるか聞いてみて、以下のようにレスポンスが返ってきていれば設定は問題なくできているでしょう。

5. シミュレータ向けにビルドしてアプリを起動する

シミュレータでビルドしてほしいと伝えるとXcodeBuildMCPのコマンドが走り、ビルド → シミュレータへのインストール → アプリの起動まで実行されます。

6. 実機向けにビルドしてアプリを起動する

現状では、XcodeBuildMCPは実機にアプリをインストールして起動することは、できないようです。

実機へのアプリインストールと起動については、僕自身も模索中なので、ここでは試したことを書いておきます。

前提条件として、Xcodeでビルドができ、実機へのアプリインストールもできる状態にしておく必要があります。(開発者の認証やデバイスの登録が必須なため)

XcodeBuildMCP + ios-deploy

ビルドはXcodeBuildMCPで行い、実機へのアプリインストールと起動はios-deployを使用する方法です。

僕の環境では、ios-deployのコマンドが実行されてからいつまで経っても終了しなかったため、成功した実績はありません。

https://github.com/ios-control/ios-deploy

SweetPad

SweetPadを使用してビルドランをする方法です。
具体的な方法については検索すればヒットすると思いますので、ここでは割愛します。

ビルドして、実機へのアプリインストールと自動起動まではできるのですが、ビルドスキームが反映されない問題がありました。

ビルドスキームの設定を別途すればいけるのかもしれませんが、調査はできていません。

4. iOS開発をやりやすくするためのTips

Xcodeのテーマを使用する

Xcodeで開発することに慣れてしまっている人はCursorのテーマに慣れずコードの可読性が下がる場合があるかと思います。

Cursorの拡張機能で「Xcode Theme」をインストールして Set Color Theme でXcodeに近しいテーマを選択できます。

ファイルやディレクトリにアイコンを設定する

Material Icon Theme という拡張機能をインストールすると、いい感じにアイコンを設定してくれます。

Group管理しているプロジェクトの場合、Cursor上でファイルを新規作成しても反映されないのでFolder管理に変更する

Group管理している場合はCursor上でファイルを新規作成しても、XcodeでAdd Files toをしないと、Xcodeプロジェクトに反映されません。

Folder管理の場合であれば、Xcode側にも反映されるため、Add Files toをしなくても問題なくビルド可能です。

5. 残っている課題

実機でのビルドランが面倒臭い

XcodeBuildMCPを利用して実機に向けてビルドする場合、インストールとアプリ起動までは対応していないので、実運用は難しいと感じています。

また、SweetPadであれば、実機に向けてビルドし、自動でアプリの起動まで実行できるのですが、任意のスキームでビルドしたい場合には別途設定が必要です。(ビルドスキームの設定に関しては調査していないので不明です)

実装はCursorで、ビルドはXcodeを使う、というように分けるのが、すぐに対応できる運用方法かなと考えています。
その際には、CursorとXcodeを切り替える作業をRaycastのHotKey等を使用して、高速化することで、そこまで生産性を損なわずに運用できるかと思います。

6. さいごに

Cursorを利用してiOS開発をするには若干の課題がありますが、コーディングの支援はかなり強力だと感じています。

XcodeからCursorに全面的に乗り換えることはまだ難しそうですが、日々アップデートしていくことが予想されるので、近いうちにできるようになることを期待しています。

株式会社ジャンボではエンジニアを絶賛募集中です!
少しでも気になった方はぜひカジュアルにお話しましょう!
Wantedly: https://www.wantedly.com/companies/company_725162
HP Recruit: https://jambo-inc.io/recruit/

Jambo Tech Blog

Discussion