リモートコンフィグ
アプリを再デプロイせずに、設定をリモートで変更できます。
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が使われます