MysteriumVPN: a decentralized VPN
Mobile VPN app for Mysterium Network.
Getting started (development)
- Install Android Studio
brew install --cask android-studio
- Download project's firebase crashlytics config -
google-services.json
from https://console.firebase.google.com/u/1/project/mysterium-vpn/overview and place it inandroid/app
Local development
-
Build Mysterium Node from source code:
util_scripts/build-node.sh
-
Uncomment local dependency in
android/app/build.gradle
://implementation 'network.mysterium:mobile-node:0.8.1' implementation files('libs/Mysterium.aar')
Building release APK
-
Install Fastlane (if don't have it yet)
brew install fastlane
-
Make release build:
source fastlane/.env.local && fastlane android build
APK will be available under android/app/build/outputs/apk/release/app-release.apk
You can install this APK by:
- uploading it to phone, or
- using
adb install android/app/build/outputs/apk/release/app-release.apk
Creating releases locally
-
Get
google-services.json
:- Go to https://console.firebase.google.com
- Open android project
- Download
google-services.json
- Put it to
android/app/google-services.json
-
Create signing key:
keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
More info: https://facebook.github.io/react-native/docs/signed-apk-android#generating-a-signing-key
-
Setup values in environment:
cp fastlane/.env.local.dist fastlane/.env.local
vim fastlane/.env.local
- Setup Fastlane, more info in fastlane/README.md
Releases
Internal release
- Create a PR with bumped fastlane/android_version_code (Google play store requires new version code for each release).
- Ater merge to master create new tag in github repository. See example commit.
Public release
Public releases are promoted and managed from the Google Play Console.
Updating CI image
Repository contains Dockerfile which includes OpenJDK and Fastlane to build, test and publish Android from Docker.
TAG=1.0.0
docker build -t mysteriumnetwork/mobile-ci:$TAG .
docker push mysteriumnetwork/mobile-ci:$TAG
Contributing
Bump mobile-node version
- Update "mysterium.network:mobile-node" gradle dependency to a published version of mobile-node