본문으로 건너뛰기
Unveilydocs

라이선스 구조

Unveily 라이선스의 동작 방식

개요

Unveily는 이중 라이선스 구조를 사용합니다:

  • 개발 라이선스 (Dev): 개발/테스트 환경용. 도메인 제한 없음.
  • 운영 라이선스 (Prod): 릴리즈 빌드 전용. 패키지명 + 앱 서명 바인딩 필수.

라이선스 검증 흐름

라이선스 검증은 앱 실행 시 자동으로 수행됩니다. 개발자가 코드를 작성할 필요 없습니다.

앱 실행

라이선스 자동 검증 (SDK 내부 처리)
  ↓  유효하지 않음 → 앱 종료
WebView 실행 허용

라이선스 검증에는 네트워크 연결이 필요합니다. 오프라인 환경에서는 마지막 검증 결과가 유예 기간 동안 캐시됩니다.

라이선스 파일 설정

다운로드한 SDK 패키지에 포함된 license.key 파일을 앱에 배치합니다.

app/
└── src/
    ├── debug/
    │   └── assets/
    │       └── license.key   ← 개발 라이선스
    └── release/
        └── assets/
            └── license.key   ← 운영 라이선스

개발/운영 라이선스는 대시보드 → 라이선스 메뉴에서 다운로드합니다.

운영 라이선스 활성화

운영 라이선스는 대시보드에서 활성화해야 합니다:

  1. 대시보드 → 앱 설정
  2. 패키지명 입력 (예: com.yourcompany.yourapp)
  3. 앱 서명 해시 입력 (릴리즈 키스토어 SHA-256)
  4. 운영 라이선스 활성화 클릭

앱 서명 해시 추출

# keystore에서 SHA-256 해시 추출
keytool -list -v \
  -keystore your-release-key.jks \
  -alias your-alias

Google Play App Signing을 사용하는 경우 Google이 앱을 재서명합니다. 이때는 keystore의 해시가 아닌 Google이 발급한 서명 인증서의 SHA-256 해시를 사용해야 합니다.

Play Console → 앱 → 앱 무결성 → 앱 서명 인증서 SHA-256 지문 확인

플랜별 기능 제어

라이선스 플랜에 따라 Bridge 기능이 자동으로 활성화/비활성화됩니다.

플랜포함 기능
BasicQR, 푸시, 카메라, GPS, 딥링크, 오프라인, 저장소, Google/Apple 로그인
StandardBasic + 생체 인증, 사이드 드로어, Kakao/Naver/Line 로그인
ProStandard + 인앱 결제, Meta 로그인

JavaScript에서 현재 활성화된 모듈을 확인할 수 있습니다:

window.addEventListener("unveilyGlueReady", () => {
  // 특정 기능 활성 여부 확인
  if (window.unveilyBridge.modules.isEnabled("biometric")) {
    showBiometricButton();
  }

  // 활성화된 모듈 전체 목록
  const modules = window.unveilyBridge.modules.getEnabledModules();
  console.log(modules); // ["qr", "biometric", "iap", ...]
});

On this page