본문으로 건너뛰기
Unveilydocs

원격 설정

배포 없이 앱 설정을 원격으로 바꿉니다.

Android · iOS 공통

원격 설정은 Android와 iOS에서 동일하게 동작합니다. 두 플랫폼 모두 앱 시작 시 원격 설정을 가져와 로컬 config.json에 병합합니다. (security.*remoteConfigUrl 값은 보안상 원격으로 덮어쓸 수 없습니다.)

한눈에 보기

Remote Config를 사용하면 앱을 재배포하지 않고 서버에서 설정을 변경할 수 있습니다. 앱 시작 시 설정 서버에서 최신 값을 가져와 로컬 설정(config.json)을 덮어씁니다.

원격 설정이 로컬 설정보다 우선 적용됩니다.


설정 방법

assets/config.json에 원격 설정 URL을 추가합니다.

assets/config.json
{
  "remoteConfigUrl": "https://your-server.com/api/app-config",
  "modules": {
    "accessibility": { "enabled": true }
  }
}

remoteConfigUrl이 비어 있거나 없으면 원격 설정 기능이 비활성화되고 로컬 config.json만 사용됩니다.

remoteConfigUrl은 반드시 https:// 엔드포인트여야 합니다. HTTP는 지원하지 않습니다.


서버 응답 형식

서버는 config.json과 동일한 구조의 JSON을 반환해야 합니다. 반환된 값이 로컬 설정을 덮어씁니다.

{
  "modules": {
    "bottomTabs": {
      "enabled": true,
      "autoHide": false
    },
    "accessibility": {
      "enabled": true,
      "topDownPanel": false
    }
  },
  "security": {
    "screenshotProtectionEnabled": false
  },
  "socialLogin": {
    "kakao": true,
    "naver": true
  }
}

원격 설정에서 생략된 키는 로컬 config.json 값이 유지됩니다.


원격으로 변경 가능한 설정

설정설명
modules.bottomTabs.enabled하단 탭 바 활성화 여부
modules.sideDrawer.enabled사이드 드로어 활성화 여부
modules.topDownMenu.enabled상단 메뉴 활성화 여부
modules.bottomSheet.enabled하단 시트 활성화 여부
modules.accessibility.enabled접근성 기능 활성화 여부
security.screenshotProtectionEnabled스크린샷 보호 활성화 여부
security.backgroundProtectionEnabled백그라운드 화면 보호 여부
socialLogin.*각 소셜 로그인 제공자 활성화 여부

보안 관련 설정(rootDetectionEnabled 등 일부)은 원격 설정으로 변경되지 않고 앱 빌드 시 설정된 값이 사용됩니다.


캐시 정책

  • 앱 시작 시 원격 설정을 비동기로 가져옵니다.
  • 네트워크 오류 시 마지막으로 캐시된 원격 설정이 사용됩니다.
  • 캐시가 없으면 로컬 config.json이 사용됩니다.

On this page