Skip to main content
Unveilydocs

Remote Config

Update app settings remotely without a new release.

Android and iOS

Remote config works identically on Android and iOS. Both platforms fetch the remote config at app start and merge it into the local config.json. (For security, security.* values and remoteConfigUrl itself cannot be overridden remotely.)

At a Glance

Remote Config lets you change settings from the server without re-releasing the app. When the app starts, it fetches the latest values from the config server and overrides the local settings (config.json).

Remote settings take priority over local settings.


How to Configure

Add the remote config URL to assets/config.json.

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

If remoteConfigUrl is empty or missing, the remote config feature is disabled and only the local config.json is used.

remoteConfigUrl must be an https:// endpoint. HTTP is not supported.


Server Response Format

The server must return JSON in the same structure as config.json. The returned values override the local settings.

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

Keys omitted from the remote config will keep their local config.json values.


Remotely Changeable Settings

SettingDescription
modules.bottomTabs.enabledWhether the bottom tab bar is enabled
modules.sideDrawer.enabledWhether the side drawer is enabled
modules.topDownMenu.enabledWhether the top menu is enabled
modules.bottomSheet.enabledWhether the bottom sheet is enabled
modules.accessibility.enabledWhether accessibility features are enabled
security.screenshotProtectionEnabledWhether screenshot protection is enabled
security.backgroundProtectionEnabledWhether background screen protection is enabled
socialLogin.*Whether each social login provider is enabled

Some security-related settings (like rootDetectionEnabled) cannot be changed via remote config — the values set at build time are used instead.


Cache Policy

  • Remote config is fetched asynchronously when the app starts.
  • If there is a network error, the last cached remote config is used.
  • If there is no cache, the local config.json is used.

On this page