- Android: 添加 network_security_config.xml,默认禁止明文流量 - Android: 仅允许 localhost/127.0.0.1/10.0.2.2 明文(开发调试) - Android: 更新 AndroidManifest 引用网络安全配置 - ApiClient: 默认 URL 改为 https://api.nuanji.app/api/v1 - AppConfig: fromEnvironment 默认值改为 HTTPS 生产地址 - AppConfig: dev 常量保留 localhost(仅用于本地开发) - iOS: ATS 默认已强制 HTTPS,无需修改 审计 ID: 6b-C01
54 lines
1.7 KiB
Dart
54 lines
1.7 KiB
Dart
// 应用环境配置 — 通过 --dart-define 注入
|
||
//
|
||
// 使用方式:
|
||
// flutter run # 开发模式(localhost)
|
||
// flutter run --dart-define=API_BASE_URL=https://api.nuanji.app/api/v1 # 生产模式
|
||
//
|
||
// 安全说明:
|
||
// - 生产环境强制 HTTPS(Android network_security_config 禁止明文流量)
|
||
// - 开发模式使用 localhost(Android 网络安全配置已允许 localhost 明文)
|
||
|
||
/// 应用环境配置 — 集中管理所有外部服务地址
|
||
class AppConfig {
|
||
/// API 基础 URL(后端 Axum 服务地址)
|
||
final String apiBaseUrl;
|
||
|
||
/// SSE 推送服务 URL(通常与 API 同一地址)
|
||
final String sseBaseUrl;
|
||
|
||
const AppConfig({
|
||
required this.apiBaseUrl,
|
||
required this.sseBaseUrl,
|
||
});
|
||
|
||
/// 从编译时环境变量构建配置
|
||
///
|
||
/// 使用 `--dart-define` 注入,未设置时使用生产 HTTPS 默认值。
|
||
/// 开发环境使用 [dev] 常量或通过 --dart-define 覆盖。
|
||
factory AppConfig.fromEnvironment({
|
||
String defaultApiBaseUrl = 'https://api.nuanji.app/api/v1',
|
||
String defaultSseBaseUrl = 'https://api.nuanji.app/api/v1',
|
||
}) {
|
||
// const String.fromEnvironment 在编译时求值
|
||
const apiBaseUrl = String.fromEnvironment(
|
||
'API_BASE_URL',
|
||
defaultValue: 'https://api.nuanji.app/api/v1',
|
||
);
|
||
const sseBaseUrl = String.fromEnvironment(
|
||
'SSE_BASE_URL',
|
||
defaultValue: 'https://api.nuanji.app/api/v1',
|
||
);
|
||
|
||
return AppConfig(
|
||
apiBaseUrl: apiBaseUrl,
|
||
sseBaseUrl: sseBaseUrl,
|
||
);
|
||
}
|
||
|
||
/// 开发环境默认配置(localhost 明文 — 仅用于本地调试)
|
||
static const dev = AppConfig(
|
||
apiBaseUrl: 'http://localhost:3000/api/v1',
|
||
sseBaseUrl: 'http://localhost:3000/api/v1',
|
||
);
|
||
}
|