Files
status-app/mobile
Siddarth Kumar c4e0dbeae7 ci: serialise linux and macos jobs and build from system nim
- in linux jobs we serialise `tests-ui`, `tests-nim` and  appImage
`package` into a single workflow.
- in macos job we serialise `iOS`, `MacOS` builds into a single
workflow.
- we use system `nim` for all jobs and dont have to build nim from
nimbus build system each time.
  - installed `nim 2.2.10` on `windows` and `macos` hosts.
  - upgraded nim in Docker images and bumped the harbour tags for
`linux` and `android`.

This will help us avoid checkout and `deps` stage for these jobs and we
can free up slots for other jobs.
This way we can do more work in parallel.

Because of this we save:
- `12` minutes of build time in `linux` job.
- `10` minutes of build time in `macos` job.
- `21` minutes of `nim` compile time in `windows` job.
2026-08-26 15:41:03 +05:30
..
2026-05-06 08:53:30 +05:30
2026-08-19 00:44:24 +02:00
2026-07-07 10:44:53 +03:00
2026-08-12 14:49:15 +05:30
2026-08-12 14:49:15 +05:30

Status Mobile Build System

This repository contains the build system for Status Mobile, supporting both iOS and Android platforms with Qt6 compatibility. Cross-compilation is currently supported on MacOs and Linux. Windows is not supported. The dev setup runs well on WSL with Windows emulator.

Table of Contents

Quick Start Guide (Container Builds)

This section is for users who want to get up and running quickly with minimal technical setup.

Prerequisites

  • Docker
  • ADB (Android Debug Bridge)
  • Android Emulator

Quick setup - android

  1. Install dependencies:
# macOS
brew install docker --cask
# Start docker
open -a Docker
brew install android-platform-tools android-commandlinetools xcbeautify
# Ubuntu
sudo apt-get update
sudo apt install android-sdk-common

sdkmanager --install \
"build-tools;36.0.0" \
"emulator" \
"platform-tools" \
"platforms;android-36" \
"ndk;27.2.12479018" \
"system-images;android-36;google_apis;arm64-v8a"
  1. Verify installation:
docker --version
adb --version
emulator --version
avdmanager --version
sdkmanager --version
  1. Building the app
make -f mobile/ContainerBuilds.mk
  1. Running the app
# Linux and MacOS
make -f mobile/ContainerBuilds.mk run

What Happens Behind the Scenes

  • The build process uses the same pre-built Docker image as the CI pipeline (harbor.status.im/status-im/status-desktop-build:1.0.0-qt6.11.0-android)
  • All required tools and dependencies (Qt 6.11.0, Android SDK/NDK, Go, Nim) are provided by the container
  • The container runs on linux/amd64 platform for consistency, even on ARM macOS machines
  • The built APK/AAB is available in the mobile/bin/android/qt6/ directory