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.
- Use Android Studio to build/debug
- Use
git submodule update --init --recursive
to pull in the various sub-modules we depend on. - 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/ - 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.
-
Configure analytics for development device
adb shell setprop debug.firebase.analytics.app com.geeksville.mesh
adb shell setprop log.tag.FirebaseCrashlytics DEBUG -
Set verbose logging
adb shell setprop log.tag.FA VERBOSE
Publish to Google Play
info
Only available for core developers that publish releases.
- Add repository secrets:
- KEYSTORE_FILENAME
- Name of the
.jks
- Name of the
- KEYSTORE
- Convert the
.jks
to base64:openssl base64 < filename.jks | tr -d '\n' | tee filename.txt
- Convert the
- KEYSTORE_PROPERTIES
storePassword=nononononono
keyPassword=nononononono
keyAlias=upload
storeFile=nononononono.jks
- KEYSTORE_FILENAME
- Update protobufs
- Go to Actions / Make Release / Run Workflow
- Pick the Releases branch
- Enter the version found in
app/gradle.build