Skip to main content

Add the dependency

Then install the iOS pods:
No manual linking is required — autolinking picks the library up on both platforms, and pod install downloads the pinned BMONISigner.xcframework. Android needs one repository declaration, described below.

Requirements


Android setup

The native module uses Android Keystore internally. No AndroidManifest.xml entries are required beyond the minSdkVersion constraint.
android/app/build.gradle

Declare Bkey’s Maven repository

The native BMONISigner AAR is published to Bkey’s own Maven repository. Add it to your root android/build.gradle:
android/build.gradle
This step is required, and the library cannot do it for you. A repository declared inside a library module only applies to that module’s own dependency resolution, while me.bkey.ip:bmonisigner is resolved transitively on your app’s runtime classpath. Without the declaration, the build fails with:

Build for arm64-v8a

The BMONISigner AAR ships an arm64-v8a slice only. Restrict the ABIs you build:
android/gradle.properties
Building for x86_64 or armeabi-v7a succeeds but fails at runtime with an UnsatisfiedLinkError when the native library loads. Use an arm64 device or an arm64 emulator (the default on Apple Silicon).

iOS setup

The native module uses the Secure Enclave and the Keychain. No entitlements or Info.plist keys are required. Ensure the deployment target in ios/Podfile is at least 15.1:
ios/Podfile
pod install downloads BMONISigner.xcframework the first time it runs, so the machine needs network access for that step.

Initialise

Call BmoniEmbeddedSdk.initialize once as your app starts — typically at module scope in index.js or at the top of your root component’s module. The call is idempotent; calling it again replaces the active configuration.
index.js
You’re ready. See configuration for all available options, or jump straight to wallet provisioning.