라이선스 구조
Unveily 라이선스의 동작 방식
개요
Unveily는 이중 라이선스 구조를 사용합니다:
- 개발 라이선스 (Dev): 개발/테스트 환경용. 도메인 제한 없음.
- 운영 라이선스 (Prod): 릴리즈 빌드 전용. 패키지명 + 앱 서명 바인딩 필수.
라이선스 검증 흐름
라이선스 검증은 앱 실행 시 자동으로 수행됩니다. 개발자가 코드를 작성할 필요 없습니다.
앱 실행
↓
라이선스 자동 검증 (SDK 내부 처리)
↓ 유효하지 않음 → 앱 종료
WebView 실행 허용라이선스 검증에는 네트워크 연결이 필요합니다. 오프라인 환경에서는 마지막 검증 결과가 유예 기간 동안 캐시됩니다.
라이선스 파일 설정
다운로드한 SDK 패키지에 포함된 license.key 파일을 앱에 배치합니다.
app/
└── src/
├── debug/
│ └── assets/
│ └── license.key ← 개발 라이선스
└── release/
└── assets/
└── license.key ← 운영 라이선스개발/운영 라이선스는 대시보드 → 라이선스 메뉴에서 다운로드합니다.
운영 라이선스 활성화
운영 라이선스는 대시보드에서 활성화해야 합니다:
- 대시보드 → 앱 설정
- 패키지명 입력 (예:
com.yourcompany.yourapp) - 앱 서명 해시 입력 (릴리즈 키스토어 SHA-256)
- 운영 라이선스 활성화 클릭
앱 서명 해시 추출
# keystore에서 SHA-256 해시 추출
keytool -list -v \
-keystore your-release-key.jks \
-alias your-aliasGoogle Play App Signing을 사용하는 경우 Google이 앱을 재서명합니다. 이때는 keystore의 해시가 아닌 Google이 발급한 서명 인증서의 SHA-256 해시를 사용해야 합니다.
Play Console → 앱 → 앱 무결성 → 앱 서명 인증서 SHA-256 지문 확인
플랜별 기능 제어
라이선스 플랜에 따라 Bridge 기능이 자동으로 활성화/비활성화됩니다.
| 플랜 | 포함 기능 |
|---|---|
| Basic | QR, 푸시, 카메라, GPS, 딥링크, 오프라인, 저장소, Google/Apple 로그인 |
| Standard | Basic + 생체 인증, 사이드 드로어, Kakao/Naver/Line 로그인 |
| Pro | Standard + 인앱 결제, Meta 로그인 |
JavaScript에서 현재 활성화된 모듈을 확인할 수 있습니다:
window.addEventListener("unveilyGlueReady", () => {
// 특정 기능 활성 여부 확인
if (window.unveilyBridge.modules.isEnabled("biometric")) {
showBiometricButton();
}
// 활성화된 모듈 전체 목록
const modules = window.unveilyBridge.modules.getEnabledModules();
console.log(modules); // ["qr", "biometric", "iap", ...]
});