Skip to main content

Building the Android App

Build instructionsā€‹

If you would like to develop this application we'd love your help! These build instructions are brief and should be improved, please send a PR if you can.

  1. Use Android Studio to build/debug
  2. Use git submodule update --init --recursive to pull in the various sub-modules we depend on.
  3. There are a few config files which you'll need to copy from templates included in the project. Run the following commands to do so:
    rm ./app/google-services.json
    cp ./app/google-services-example.json ./app/google-services.json
    rm ./app/src/main/res/values/curfirmwareversion.xml
    cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/
  4. Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone or the emulator.
note

The emulators don't support Bluetooth, so some features can not be used in that environment.

Setup Analyticsā€‹

Analytics are included but can be disabled by the user on the settings screen.

  1. Configure analytics for development device

    adb shell setprop debug.firebase.analytics.app com.geeksville.mesh
    adb shell setprop log.tag.FirebaseCrashlytics DEBUG
  2. Set verbose logging

    adb shell setprop log.tag.FA VERBOSE

Publish to Google Playā€‹

info

Only available for core developers that publish releases.

  1. Add repository secrets:
    • KEYSTORE_FILENAME
      • Name of the .jks
    • KEYSTORE
      • Convert the .jks to base64:
        openssl base64 < filename.jks | tr -d '\n' | tee filename.txt
    • KEYSTORE_PROPERTIES
      • storePassword=nononononono
      • keyPassword=nononononono
      • keyAlias=upload
      • storeFile=nononononono.jks
  2. Update protobufs
  3. Go to Actions / Make Release / Run Workflow
  4. Pick the Releases branch
  5. Enter the version found in app/gradle.build