| name | run-ios |
| description | Build, launch, and drive the notes app natively on the iOS simulator (React Native hosted in .NET MAUI). Use when running or building the iOS app, or driving/screenshotting its UI. |
Run on iOS
Native React Native (no WebView) hosted in .NET MAUI, talking to the in-process backend over
127.0.0.1:5001. Prereqs: Xcode + a booted simulator, CocoaPods, and the AXe CLI
(brew install cameroncooke/axe/axe) for driving the UI.
Build and run
Run in order from the repo root:
./src/Client.MAUI/Scripts/build-rn-frameworks.sh --simulator-only (runs pod install on first use). Done when src/Client.MAUI/Frameworks/ holds the xcframeworks + a simulator static-lib build.
./src/Client.MAUI/Scripts/generate-rn-linker-flags.sh.
./src/Client.MAUI/Scripts/bundle-js.sh. Done when src/Client.MAUI/Resources/Raw/main.jsbundle exists.
./src/Client.MAUI/Scripts/e2e-ios.sh (add --udid <UDID> for a specific simulator). This builds the app, installs it, launches, and proves the round-trip. Done when it prints iOS end-to-end test PASSED.
Steps 1-3 produce the gitignored artifacts the build consumes; the csproj fails loudly if they are missing.
Drive or screenshot the running UI
RN testID becomes the accessibility identifier (AXUniqueId) for the input and button; plain Text is
matched by its visible label.
- Inspect:
axe describe-ui --udid <UDID>.
- Add a note:
axe tap --id notes.text.input --udid <UDID>, axe type 'Buy groceries' --udid <UDID>, axe tap --id notes.add.button --udid <UDID>.
- Screenshot:
xcrun simctl io <UDID> screenshot shot.png (dismiss the debug LogBox banner first if it is showing).