App stores#

Links and qR codes for app stores coming soon (future releases).

Manual Build (iOS or Android)#

Regardless of target platform manual build of this project has the following dependencies:

  • Two other Spruce projects, didkit and ssi. DIDKit depends on ssi, so clone and build install the latter first. To work with build scripts depending on relative paths, created a directory named something like spruceid and clone credible, didkit, and ssi next to eachother. thereafter, work from the credible directory.

  • A nightly build of the rust compiler, most easily obtained using rustup. Once installed, nightly can be enabled globally using:

$ rustup default nightly

Or on a per-project level by running the following in the root of the targeted cargo project:

$ rustup override set nightly
  • Java 7 or higher (path to SDK's /bin/ folder must be set in environmental variables for make calls to javac)

  • Flutter set to the dev channel. This is done on *nix type systems after installation by running:

$ flutter channel dev
$ flutter upgrade

Android Specific Instructions:#

Android builds have the additional requirement of:

Android Studio which must be installed, then opened for the first time to allow further dependencies to be installed. Addiontally, requires the installation of Android NDK in Android Studio by going to Settings > Appearance & Behavior > System Settings > Android SDK. Select and install the NDK (Side by Side).

After that, the following will need to be run from the root of didkit: (Note, this may take some time as it runs several builds for different targets)

$ export ANDROID_SDK_ROOT=/path/to/Android/sdk
$ make -C lib install-rustup-android
$ make -C lib ../target/test/java.stamp
$ make -C lib ../target/test/aar.stamp
$ make -C lib ../target/test/flutter.stamp
$ cargo build

iOS Specific Instructions:#

iOS builds have the additional requirement of cocoapods, which can be installed on MacOS using brew:

$ brew install cocoapods

If building for iOS, the following will need to be run from the root of didkit: (Note, this may take some time as it runs several builds for different targets)

$ make -C lib install-rustup-ios
$ make -C lib ../target/test/ios.stamp
$ cargo build

Platform agnostic final steps:#

Regardless of platform, run the following:

$ flutter doctor

If any issues are detected, please resolve them before proceeding.

Then, to build the flutter artifacts, run one of the following commands from the root of the credible repository to either build or run the app on an emulator/connected dev-device:

$ flutter build apk --no-sound-null-safety # Android APK
$ flutter build appbundle --no-sound-null-safety # Android Appbundle
$ flutter build ios --no-sound-null-safety --no-codesign --simulator # iOS for simulator
$ flutter run --no-sound-null-safety # Run on emulator

(NOTE: While our implmentation does not require --no-sound-null-safely flag, some dependencies currently do not)

If any errors are encountered, the first thing to try is running

$ flutter clean

From the root of credible then retrying the build or run.

Setup & Testing#

Coming soon.

Seed Recovery#

Coming soon.