Tested on Ubuntu 20.04 and OSX 12.5.1 # Ubuntu ## Install JDK Make sure you install version 17 ``` sudo apt update sudo apt install default-jdk java -version ``` ## Install Android Studio ``` sudo add-apt-repository ppa:maarten-fonville/android-studio sudo apt update sudo apt install android-studio ``` ## Install watchman ``` wget https://github.com/facebook/watchman/releases/download/v2022.06.20.00/watchman-v2022.06.20.00-linux.zip unzip watchman-v2022.06.20.00-linux.zip cd watchman-v2022.06.20.00-linux sudo mkdir -p /usr/local/{bin,lib} /usr/local/var/run/watchman sudo cp bin/* /usr/local/bin sudo cp lib/* /usr/local/lib sudo chmod 755 /usr/local/bin/watchman sudo chmod 2777 /usr/local/var/run/watchman ``` ## (If in VMware linux environment) ``` sudo apt install -y open-vm-tools-desktop sudo apt install -y qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils sudo usermod -aG kvm $(whoami) reboot ``` ## Create Emulator (or connect Android phone and install adb) Use the GUI of Android studio to create a new virtual device. As of 26/03/2023 we are using a Pixel 5 as template and System image Tiramisu API level 33 If using a phone, start the USB debugging mode. Open or create `robosats/mobile/android/local.properties`: - Add `sdk.dir = /home/<YOUR_USERNAME>/Android/Sdk` You can check your SDK location on the GUI of Android studio: `Tools > SDK Manager` Make sure you have NDK installed : `Tools > SDK Manager > SDK Tools > NDK (Side by Side)` ## Launch app builder and Make sure you have the `main.js` file created on `robosats/mobile/html/Web.bundle/js`, if not, go to `robosats/frontend/` ``` npm run dev ``` Launch your emulator if you are using one: ``` cd ~/Android/Sdk/tools && ./emulator -avd <DEVICE_NAME> ``` Point a terminal to `/robosats/mobile/` to start metro ``` npm start ``` And on another terminal, also in `/robosats/mobile/`, build and install the debug app ``` npx react-native run-android ``` You can also use `react-native run-android --mode=release` to fully test the release builds of the app. # OSX ## Install JDK Make sure you install version 17 ``` https://www.oracle.com/java/technologies/downloads ``` ## Install Android Studio Download and install https://developer.android.com/studio/index.html Make sure you have the following libraries installed globally. ``` npm install -g react-native-cli brew install android-platform-tools ``` Open `robosats/mobile/android` to start the first build process. ## Install watchman Check https://github.com/facebook/watchman/releases/download or use brew: ``` brew install node brew install watchman ``` ## Create Emulator (or connect Android phone and install adb) Use the GUI of Android studio to create a new virtual devide, make sure you add enought internal storage (>= 2 GB). As of 11/10/2022 we are using a Pixel 5 as template and System image R API level 30 Android 11.0 Open or create `robosats/mobile/android/local.properties`: - Add `sdk.dir = /Users/<YOUR_USERNAME>//Library/Android/sdk` - M1 Users should also add `ndk.dir= /Users/<YOUR_USERNAME>//Library/Android/sdk/ndk/{{ndkVersion}}` You can check your SDK location on the GUI of Android studio: `Tools > SDK Manager` Make sure you have NDK installed : `Tools > SDK Manager > SDK Tools > NDK (Side by Side)` ## Run app Make sure you have the `main.js` file created on `robosats/mobile/html/Web.bundle/js`, if not, go to `robosats/frontend/` ``` npm run dev ``` Point a terminal to `robosats/mobile/` ``` npx react-native run-android ``` After the build, run or debug your project on Android Studio. Alternatively, you can run the following command to check logs on terminal: ``` npx react-native log-android ```