Skip to main content
Unveilydocs

License Structure

How Unveily licenses work

Overview

Unveily uses a dual license structure:

  • Development License (Dev): For development/testing environments. No domain restrictions.
  • Production License (Prod): For release builds only. Must be bound to a package name and app signature.

License Verification Flow

License verification is performed automatically when the app starts. Developers do not need to write any code.

App starts

License auto-verified (handled inside SDK)
  ↓  Invalid → App exits
WebView allowed to run

License verification requires a network connection. In offline environments, the last verification result is cached for a grace period.

License File Setup

Place the license.key file included in the downloaded SDK package into the app.

app/
└── src/
    ├── debug/
    │   └── assets/
    │       └── license.key   ← Development license
    └── release/
        └── assets/
            └── license.key   ← Production license

Download the development/production licenses from the dashboard → License menu.

Activate Production License

The production license must be activated in the dashboard:

  1. Dashboard → App Settings
  2. Enter the package name (e.g., com.yourcompany.yourapp)
  3. Enter the app signature hash (release keystore SHA-256)
  4. Click Activate Production License

Extract App Signature Hash

# Extract SHA-256 hash from keystore
keytool -list -v \
  -keystore your-release-key.jks \
  -alias your-alias

If you use Google Play App Signing, Google re-signs the app. In this case, you must use the SHA-256 hash of the Google-issued signing certificate, not the hash from your keystore.

Play Console → App → App Integrity → App signing certificate SHA-256 fingerprint

Feature Control by Plan

Bridge features are automatically enabled/disabled based on the license plan.

PlanIncluded Features
BasicQR, push, camera, GPS, deep links, offline, storage, Google/Apple login
StandardBasic + biometric auth, side drawer, Kakao/Naver/Line login
ProStandard + in-app purchases, Meta login

You can check which modules are currently enabled from JavaScript:

window.addEventListener("unveilyGlueReady", () => {
  // Check whether a specific feature is enabled
  if (window.unveilyBridge.modules.isEnabled("biometric")) {
    showBiometricButton();
  }

  // Full list of enabled modules
  const modules = window.unveilyBridge.modules.getEnabledModules();
  console.log(modules); // ["qr", "biometric", "iap", ...]
});

On this page