Proof of Passport App
Only Android right now, under heavy development
Requirements
Install nodejs v18
Installation
yarn
In /common, also run:
yarn
Add circuit build
Go to the circuit folder of the monorepo and build the circuit.
Add google-services.json
You need to download mlkit from firebase when building the app for text recognition. This require to download from firebase google-services.json file and save it at app/android/android-passport-reader/app/google-services.json You have to follow Steps 1 to 3 from firebase documentation :https://firebase.google.com/docs/android/setup
Step 1: Create a Firebase project
Before you can add Firebase to your Android app, you need to create a Firebase project to connect to your Android app. Visit Understand Firebase Projects to learn more about Firebase projects.
Step 2: Register your app with Firebase
Go to the Firebase console.
In the center of the project overview page, click the Android icon (plat_android) or Add app to launch the setup workflow.
Enter your app's package name in the Android package name field, here it's example.jllarraz.com.passportreader
Click Register app
Step 3: Add a Firebase configuration file
Download and then add the Firebase Android configuration file (google-services.json) to app/android/android-passport-reader/app/google-services.json
Build native lib
In /script, run:
./build_rust.sh
This will build the libhalo2_circom_passport.so lib and copy it to the desired place to be used by the app.
The config used is in android/react-native-passport-reader/android/build.gradle.
You can go there to change the profile (debug or release)
You might need to set the rust-toolchain rust version as global default. Example:
rustup default 1.67.0
And install the targets like this:
rustup target add aarch64-linux-android
Run the server
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
To export an apk:
cd android
./gradlew assembleRelease
The built apk it located at android/app/build/outputs/apk/release/app-release.apk