Files
self/app/README.md
0xturboblitz 0b8c52b861 ✈️new simpler build scripts✈️
2024-01-15 18:33:36 +01:00

78 lines
1.6 KiB
Markdown

# Proof of Passport App
### Requirements
Install `nodejs v18`, [circom](https://docs.circom.io/) and [snarkjs](https://github.com/iden3/snarkjs)
For android, install java and the android sdk
For ios, install [cocoapods](https://cocoapods.org/)
### Installation
```bash
yarn
```
In `/common`, also run:
```bash
yarn
```
### Build the app
Go to the `circuit` folder of the monorepo and build the circuit.
#### Build the android native module
Run:
```
./scripts/build_android_module.sh
```
You might need to set the rust-toolchain rust version as global default. Example:
```
rustup default 1.67.0
```
This you modify the circuits, you might have to modify `ark-circom-passport/src/passport.rs` too.
#### Build the iOS native module
Run:
```
./scripts/build_ios_module.sh
```
Now:
```
cd ios
pod install
./post_install.sh
cd ..
```
#### Run the app
To run the server, first connect your phone to your computer, allow access, then:
```
yarn start
```
Then press `a` for android or `i` for iOS
If you want to see the logs and have a better ios developer exprience, open `/ios` in Xcode and launch the app from there instead
To see the android logs you'll have to use the Android Studio Logcat
To export an apk:
```
cd android
./gradlew assembleRelease
```
The built apk it located at `android/app/build/outputs/apk/release/app-release.apk`
#### Download zkey
If you want to mint a proof of passport SBT, run:
```
./scripts/download_current_zkey.sh
```
This will download the zkey currently deployed onchain in the proof of passport contract and place it in `circuits/build``
Then, build the android or iOS native module and run the app.