-
Notifications
You must be signed in to change notification settings - Fork 0
Building and releasing
Requirements: Flutter 3.44+, the Android SDK (API 36 for that Flutter version), JDK 17 or 21, and a device or emulator on Android 7.0 (API 24)+.
flutter pub get
flutter analyze
flutter test
flutter build apk --release # -> build/app/outputs/flutter-apk/app-release.apk
adb install -r build/app/outputs/flutter-apk/app-release.apkCI runs flutter analyze and flutter test on every push and pull request.
Release signing is read from android/key.properties, which is git-ignored.
Without it, a release build falls back to debug signing — fine for local testing,
and the reason the early prereleases warn about an unknown developer.
keytool -genkeypair -v -keystore ~/keys/breeze-release.jks -storetype PKCS12 \
-keyalg RSA -keysize 4096 -validity 10000 -alias breezeThen write android/key.properties with four lines — storePassword,
keyPassword, keyAlias=breeze, and storeFile as an absolute path to the
.jks.
App icons regenerate with dart run flutter_launcher_icons from assets/icon/.
The Flutter template asks the Gradle JVM for 8 GB and leaves it resident long
after the build finishes — about 5 GB in practice. The heap is capped at 2 GB here
and the daemon exits after ten minutes idle. If you are building on a machine with
plenty of RAM and want the speed back, that is android/gradle.properties.
Releases are published on the
releases page and mirrored to
the package host, which also
serves a stable breeze-latest.apk.
The app and the server version independently: the app talks to any server version and feature-detects what it can use, so there is no need to upgrade both together. See the compatibility table in Installing it.
CONTRIBUTING.md. Vulnerabilities go to SECURITY.md privately, not into a public issue.
The in-app list (Settings → Licences) comes from Flutter's LicenseRegistry,
which collects the LICENSE file of every Dart package in the graph at build time
— so it cannot drift from what is actually linked, and needs no maintenance.
It does not know about Gradle. Anything added to android/app/build.gradle.kts
is invisible to it, which is how the AndroidX Car App Library behind
Android Auto — Apache-2.0, whose §4(a) asks that recipients get a
copy of the licence — ended up with no attribution anywhere in the app. It is
registered explicitly now in lib/src/native_licenses.dart, from a bundled copy
of the licence text, and a test asserts the entry appears. Add native
dependencies to that file too.
Breeze · Breeze Core (the server) · APKs · AGPL-3.0
Start here
Using it
- The control screen
- Home-screen widgets
- Android Auto
- Programs
- Diagnostics and the Nerd screen
- Multiple servers
- Settings and theming
Under the hood
The server