Skip to main content
このチュートリアルでは、Devin が空のリポジトリから小さな SwiftUI 製の習慣トラッカーを作り上げます。Devin はコードを書き、Xcode でビルドし、iOS シミュレータで実行して、プルリクエストを作成します。その作業の様子を見守りながら結果をレビューし、最後に Devin に TestFlight へベータビルドを配信してもらいます。
macOS VM 上で iOS ゲームを構築する Devin

始める前に

  • macOS VM: Devin のセッションは macOS 上で実行する必要があります。Dedicated SaaS デプロイメントをご利用の場合は、アカウントチームに macOS VM の有効化を依頼してください。詳しくは macOS サポートをご覧ください。
  • リポジトリ: 空のリポジトリ (例: habit-tracker) を作成し、Git 統合経由で Devin にアクセス権を付与します。
  • Desktop モード: 設定 > カスタマイズEnable desktop mode をオンにします。これにより、Devin がシミュレータを操作し、テストの様子を記録できるようになります。詳しくは Computer Useをご覧ください。
macOS セッションの使用量は Linux セッションと同じで、macOS の追加料金はかかりません。

Step 1: Devin にアプリのビルドを指示する

選択したリポジトリで新しいセッションを開始し、プロンプトボックスの下にあるプラットフォームメニューから macOS を選択します。Xcode、iOS シミュレータ、Homebrew はプリインストール済みのため、事前の設定は不要です。
Slack では、メッセージに !mac bang コマンドを追加してください。API から利用する場合は、セッション作成時に platform: "macos" を指定します。
アプリの機能、使用するツール、そして動作を確認する方法を含めた具体的なプロンプトを Devin に渡します。次に使用例を示します。
良いiOSプロンプトの条件:
  • プラットフォームのバージョンとフレームワークを明示する — Devinがデプロイメントターゲットやアーキテクチャを推測せずに済みます。
  • シミュレータのデバイスを明示する — ビルドコマンドがVM上に実在するデスティネーションを使用するようになります。
  • 具体的な検証フローを記述する — Devinがコンパイルの成否を確認するだけでなく、あなたが重視する挙動をテストします。

ステップ2: Devin のビルドとテストを見守る

Devin は iOS 開発者と同じような流れでタスクを進めます。
  1. プロジェクトの雛形を作成: project.yml、SwiftUI のビュー、習慣モデル、テストターゲットを作成し、xcodegen generate を実行します。
  2. ビルドしてエラーを修正: シェルから xcodebuild を実行し、コンパイラの出力を確認しながら、ビルドとテストが通るまでエラーを修正します。
  3. シミュレータでアプリを実行: デバイスを起動し、ビルドをインストールして起動します。
  4. 指定したフローをテスト: Computer Use でアプリをタップ操作し、画面上で結果を検査したうえで、その実行を録画します。
  5. プルリクエストを作成: 概要とスクリーンショットを添えて作成します。
セッションのワークスペースで iOS シミュレータ タブを開くと、Devin がアプリをタップ操作する様子を、起動中のシミュレータ上でリアルタイムに確認できます。
ビルドがデスティネーションを見つけられない場合は、Devin に xcrun simctl list devices available を実行させ、VM に実際に存在するデバイスと OS を利用するよう指示してください。

ステップ3: レビューと反復

他のプルリクエストと同じようにレビューします。スクリーンショットと録画が依頼した内容と一致しているかを確認してください。その後は、同じセッション内でフォローアップのプロンプトを送り、開発を続けましょう。
プルリクエストにレビューコメントを残すこともできます。セッションがアクティブな間は、Devin がそれらのコメントに応答します。詳しくは GitHub統合Devin Review を参照してください。

ステップ4: TestFlightにベータ版を配信する

アプリがシミュレータで動作するようになったら、Devinはアプリをアーカイブして署名し、ビルドをTestFlightにアップロードできます。これにより、テスターは実機にアプリをインストールできるようになります。 そのためには、ご自身で行う1回限りのセットアップが必要です。各ステップはiOSビルドをTestFlightにアップロードするで解説しています。
  1. App Store Connectをセットアップする: 契約への同意、バンドルIDの登録、アプリレコードの作成、ベータグループの作成、輸出コンプライアンスへの回答を行います。
  2. App Store Connect APIキーを作成し.p8ファイルをダウンロードします。
  3. Devinのシークレットを追加する: ASC_KEY_IDASC_ISSUER_IDASC_PRIVATE_KEYAPPLE_TEAM_ID
  4. 組織で制限付きのネットワークポリシーを利用している場合は、Appleのサーバーへのネットワークアクセスを許可する
project.ymlとApp Store Connectでは同じバンドルIDを利用してください。ステップ1でDevinがプレースホルダーのバンドルIDを選択していた場合は、まずプロジェクトを更新するよう指示してください。
その後、シークレットが利用できるよう新しいセッションを開始し、Devinに次のように指示します:
DevinはAPIキーをディスクに書き込み、xcodebuild archiveでアプリをアーカイブし、xcodebuild -exportArchiveでアップロードします。その後、処理済みのビルドをベータグループに追加します。これらの手順を毎回プロンプトで繰り返さずに再利用するには、ブループリントのknowledgeセクションにtestflightの項目を追加してください。詳細はブループリントに手順を保存するを参照してください。

ヒント

  • ツールチェーンを固定する: macOSイメージには複数のXcodeバージョンが含まれています。ブループリント内で DEVELOPER_DIR または xcode-select を利用して使用するバージョンを指定してください。Xcodeバージョンの選択を参照してください。
  • 認証情報はシークレットとして保存する: App Store Connect APIキー、署名証明書、非公開パッケージレジストリのトークンはシークレットに保存してください。Devinはこれらを環境変数として読み取ります。
  • パッケージレジストリを許可する: 組織で制限付きのネットワークポリシーを利用している場合は、macOSの許可リストにSwift Package Manager、CocoaPods、およびアプリが利用する非公開レジストリが含まれていることを確認してください。ネットワークアクセスを参照してください。
  • 復帰後にシミュレータを再起動する: セッションがスリープから復帰すると、ファイルは残りますが実行中のプロセスは失われます。テストの前にDevinにシミュレータを起動し直すよう依頼してください。
  • 根拠を求める: 特定の画面のスクリーンショットや録画を求めれば、自身でアプリを実行しなくてもUIを確認できます。

制限事項

  • Devin はアプリをシミュレータ上で実行し、実機の iPhone や iPad では実行しません。実機でテストするには、TestFlight ビルドをインストールしてください。
  • VM 内でのタイミング計測やプロファイリングの結果は、実機のパフォーマンスを反映しません。
  • macOS VM 上ではコンテナがソフトウェアエミュレーションで動作するため、コンテナを多用する作業は遅くなります。
詳細は macOS サポートの制限事項 を参照してください。

次のステップ

TestFlightへのアップロード

ビルドをアップロードするためのApp Store Connectの設定、APIキー、シークレット

macOSのサポート

macOSセッション向けのブループリント設定、プリインストール済みツール、トラブルシューティング

テストと録画

Devinがアプリをテストし、結果を記録する仕組み