Skip to main content

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.

tip

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.

Python 3.14 compatibility

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.