コンテンツにスキップ

English · 日本語

Getting started(iOS トラック)

Getting started のループを iOS Simulator 上で idb backend を使って完結させます。 macOS と Xcode が必要です。Mac がないマシンでは、代わりにweb トラックを辿ってください。 Xcode も Simulator も要らず、同じループをブラウザに対して辿れます。

関連: Getting started · web トラック · showcase · drivers

まず共通ウォークスルーのステップ 1〜3(インストール、ユニットテスト、シナリオを読む) を済ませてください。Mac 固有の要素は何もありません。このページはステップ 4 から続きます。


必要なもの

目的 必要なもの
ステップ 1〜3(共通) macOS or Linux、Python 3.13(uv で管理)
以下のステップ 4〜5 Xcode 入り macOS(iOS Simulator)、XcodeGen(showcase のビルド用)、idb backend(brew install facebook/fb/idb-companion

ステップ 4:ショーケースアプリをビルドする

リポジトリには showcase フィクスチャ(同じアプリを SwiftUI と UIKit で書き、各々をアクセシビリティ有/無の 変種にしたもの)が同梱されており、Bajutsu のすべてのプリミティブを計装しています。SwiftUI のアクセシビリティ プロダクトを Simulator 向けにビルドします。

make -C demos/showcase swiftui-build         # xcodegen generate -> iOS Simulator 向けに xcodebuild

demos/showcase/ios/swiftui/build/… の下に BajutsuShowcaseSwiftUI.app ができます(.xcodeprojbuild/ は gitignore 済みで、project.yml が正です)。launch-env フックと識別子カタログは showcase を 参照してください。

ステップ 5:Simulator 上でシナリオを走らせる

Simulator を boot し、idb backend が使える状態にします。

xcrun simctl boot "iPhone 15"                 # または Xcode > Open Developer Tool > Simulator から
brew install facebook/fb/idb-companion        # idb backend(初回のみ)
uv sync --extra idb                           # idb の python クライアント

一発で通す経路は make ターゲットです。ビルドしたばかりのアプリを install し、smoke シナリオと doctor チェックを booted デバイスで実行します。

make -C demos/showcase run-swiftui

あるいは CLI を直接叩くこともできます(上と同じ手順を書き下したものです)。

uv run bajutsu run --scenario demos/showcase/scenarios/smoke.yaml --target showcase-swiftui --backend idb --udid booted --no-erase

各フラグの意味は次のとおりです。

  • --target showcase-swiftuidemos/showcase/showcase.config.yamltargets.showcase-swiftui を選びます (bundle id、launch env、許可された id 名前空間を含みます)。ツール自体はアプリ非依存で、アプリ ごとの差分はすべて config に置きます(configuration)。
  • --backend idb で actuator を選び、--udid booted で現在 boot 中の Simulator を対象にします。
  • --no-erase は最初に simctl erase をかけず、install 済みのアプリをそのまま使います。

成功すると、次のような行が出ます。

PASS  runs/20260610-120000/manifest.json

run全シナリオ合格で終了コード 0、いずれか失敗で 1 を返し、この終了コードが CI(継続的 インテグレーション)ゲートになります(run-loop)。

環境の問題(booted Simulator が無い、idb が未インストールなど)に当たったら、まず uv run bajutsu doctor --target showcase-swiftui を走らせてください。必要な CLI と booted デバイスの ✓/✗ チェックリストを表示し、続けて現在の画面が識別子規約にどれだけ従っているかを採点します (configuration)。

共通ウォークスルーのステップ 6:レポートを読むへ進んでください。

AI でオーサリングする(iOS)

Claude に showcase アプリをゴールへ向けて探索させ、シナリオを書かせます(Tier 1)。 .env ファイルに ANTHROPIC_API_KEY=sk-ant-… を置いてから実行します。

uv run bajutsu record --target showcase-swiftui --goal "log in and increment the counter to 3"   # アプリのシナリオディレクトリへ書く

ネイティブ XCUITest を出力する

uv run bajutsu codegen demos/showcase/scenarios/smoke.yaml --target showcase-swiftui -o UITests/Smoke.swift

make -C demos/showcase ui-test で end-to-end に実行できます。構造のマッピングは codegen を参照してください。