Prerequisites
Flutter app requirements
The app needs to have the Semantics tree enabled. Flutter does not generate it by default. You need one of the following:
Option A — Add one line to your app's startup code.
assert(() {
SemanticsBinding.instance.ensureSemantics();
return true;
}());
This is a debug-only call wrapped in an assert, so it has zero effect in release builds.
Option B — Enable TalkBack / VoiceOver on the device. When a screen reader is active, Flutter automatically generates the Semantics tree for every screen. No code changes needed.
Android
ADB (Android Debug Bridge)
Required for screenshots and automated navigation on Android devices and emulators.
# macOS
brew install android-platform-tools
Verify it is working:
adb devices
You should see your device or emulator listed.
iOS
Xcode Command Line Tools
Required for iOS simulator screenshots.
xcode-select --install
idb (Facebook's iOS Development Bridge)
Required for automated tap navigation and text input on iOS simulators.
brew tap facebook/fb
brew install idb-companion
pip3 install fb-idb --break-system-packages
Verify it is working:
idb list-targets
You should see your booted simulator listed.
When you run conalyz lab in device mode, Conalyz automatically starts and connects idb_companion for your simulator — you do not need to start it manually.
fb-idb 1.1.7 uses an API removed in Python 3.14. If you hit an error on startup, open the installed idb/cli/main.py file and replace:
loop = asyncio.get_event_loop()
with:
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
Flutter
Conalyz spawns flutter run to start your app for runtime analysis. Flutter must be installed and on your PATH:
flutter --version
If Flutter is not installed, follow the Flutter installation guide.