원격 설정
배포 없이 앱 설정을 원격으로 바꿉니다.
Android · iOS 공통
원격 설정은 Android와 iOS에서 동일하게 동작합니다. 두 플랫폼 모두 앱 시작 시 원격 설정을 가져와 로컬 config.json에 병합합니다. (security.*와 remoteConfigUrl 값은 보안상 원격으로 덮어쓸 수 없습니다.)
한눈에 보기
Remote Config를 사용하면 앱을 재배포하지 않고 서버에서 설정을 변경할 수 있습니다. 앱 시작 시 설정 서버에서 최신 값을 가져와 로컬 설정(config.json)을 덮어씁니다.
원격 설정이 로컬 설정보다 우선 적용됩니다.
설정 방법
assets/config.json에 원격 설정 URL을 추가합니다.
{
"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이 사용됩니다.