Supported platforms
Check which macOS versions, devices, and platforms Astra Scout supports.
Host
Astra Scout runs on macOS 14 or later, on Apple silicon or Intel. Building the app and some device features need Xcode.
Target devices
| Target | Supported | Notes |
|---|---|---|
| iOS Simulator | Yes | Needs Xcode and an iOS runtime. Screen mirroring in the app through Xcode's SimulatorKit. |
| Real iPhone | Yes | WebDriverAgent must be signed with an Apple Development team. |
| Android emulator | Yes | Needs Android Studio SDK and an AVD. |
| Real Android device | Yes | Needs USB debugging enabled and authorized. |
| Web browser | No | There is no web test backend yet, and the web options are hidden in the UI. |
| Windows or Linux host | No | The app targets macOS. |
iOS details
- Flows run through WebDriverAgent (WDA).
- With Xcode 27 and iOS 27, taps and drags on the mirror go straight to the iPhone through the
devicehidtool, giving near-instant response. Without it, gestures replay through WDA after you release the mouse. The Intel (x64) DMG does not includedevicehid. clearStateuninstalls and reinstalls the app. On a real iPhone it needs an.ipaor an iPhone-build.appon your Mac. See Devices.
Android details
- Flows run through maestro-runner's DeviceLab driver, so
evalWebViewScriptandrunWebViewScriptwork on Android. - The Android SDK is found through
ANDROID_HOME,ANDROID_SDK_ROOTor~/Library/Android/sdk, or you can set the path in Settings → Emulators.
Commands that depend on the platform
Astra Scout only accepts maestro-runner commands that run on the connected device's platform, plus the three AI commands (assertWithAI, assertNoDefectsWithAI, extractTextWithAI). Commands that cannot run on the connected device, such as travel on iOS or acceptAlert on Android, are:
- struck through in the editor suggestions,
- underlined in red in the file,
- rejected when the AI writes a flow, and through the MCP
validate_flowandsave_flowtools, with a suggested replacement.
If no device is connected, a command missing on only one platform is shown as a warning. Commands inside a block that only runs on the other platform are not rejected, for example runFlow with when: platform: iOS.