Air quality measures gathering multi-platform application.
cd apolline-flutter
flutter pub get
dart scripts/configuration_generation.dart # see backend endpoint configuration section below
flutter runBefore running the application, you MUST generate endpoint configuration by running:
dart scripts/configuration_generation.dartThen, you can set variables in the apolline-flutter/assets/config_dev.json file.
On develop push, CI will build an APK and try to push it as beta release on the Play Store.
Before merging a branch on develop, make sure:
- release notes have been updated
- application version has been increased (minor/patch)
If you want to make a public release on Play Store, you must mark a previously-uploaded beta release as ready for production in the Play console (https://play.google.com/console).
- Create a keystore with an upload key (https://flutter.dev/docs/deployment/android#create-an-upload-keystore);
- Move the keystore file as
android/app/upload-keystore.jks; - Create
android/key.propertiesfile as such:
storeFile=upload-keystore.jks
storePassword=$KEYSTORE_STORE_PASSWORD
keyAlias=$KEYSTORE_KEY_ALIAS
keyPassword=$KEYSTORE_KEY_PASSWORD
- Build the application with
flutter build apkorflutter build appbundle.
To make the CI build the application bundle and sign it, we need to upload it to GitHub as a secret.
- Encode the store with base64:
gpg -c --armor release.keystore; - Upload both
release.keystore.ascand associated password as GitHub secrets; - Use them as such in your CI workflow:
# Create store file from secret
echo "${{ secrets.UPLOAD_KEYSTORE }}" > upload.keystore.asc
# Decode store with encode key (the one you prompted with gpg -c)
gpg -d --passphrase "${{ secrets.UPLOAD_KEYSTORE_PASSPHRASE }}" --batch upload.keystore.asc > app/upload-keystore.jks
A Medium article describing the procedure can be found here: https://stefma.medium.com/how-to-store-a-android-keystore-safely-on-github-actions-f0cef9413784
- LOA sensor.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- BARRY Issagha
- GDISSA Ramy
- RADI Lina
- VIDOR Remi





