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.