适用:Flutter 客户端(Android / iOS / Windows / macOS)
目标:修改后端接口地址并完成多端打包发布
flutter --version 与 flutter doctor 无红项pubspec.yaml 中修改:1.2.3 是版本名,45 是构建号。serverUrl。wsUrl。lib/core/services/api/api_client.dart小白提示: serverUrl是 HTTP 接口地址wsUrl是 WebSocket 地址两个协议必须一致: https对应wssbaseUrl不用改,它会自动拼接成https://your-domain.com/api/v1
https://你的域名/api/v1admin/.env.productionVITE_API_URL = https://im.yi-ruan.com/api/v1VITE_API_URL = https://your-domain.com/api/v1小白提示: admin/.env.production是发布用配置开发本地联调时,才用 admin/.env.development
build/app/outputs/flutter-apk/app-release.apk小白提示:
如果你只想快速测试,可以先用 debug 签名(已内置)。
要发布到应用市场必须配置正式签名,见下文“Android 签名配置”。
Execution failed for task :app:bundleReleaseuses-sdk:minSdkVersion 30 cannot be smallerKeystore was tamperedbuild/ios/ipa/*.ipa小白提示:
iOS 打包一定需要 Mac + Xcode。
如果没有 Mac,需要找人帮忙或使用云构建。
小白提示:
Windows 需要安装 Visual Studio(带 C++ 开发组件)。
macOS 需要安装 Xcode 和命令行工具。
lib/core/services/api/api_client.dartApiConfig.serverUrlApiConfig.wsUrlApiConfig.baseUrl(由 serverUrl 拼接,不需要手动改)ApiConfig 内已有本地开发地址(注释状态),按需切换注释即可。flavor / .env / isPro / debugMode 相关开关,接口只在 ApiConfig 集中配置。serverUrl 与 wsUrl 协议必须匹配(http ↔ ws,https ↔ wss)。ApiConfig.getMediaUrl() 拼接,serverUrl 必须指向同一域名。lib/features/settings/pages/profile_page.dart| 文件(含行号) | 变量/内容 | 说明 |
|---|---|---|
lib/core/services/api/api_client.dart:14 | serverUrl | REST API 主域名 |
lib/core/services/api/api_client.dart:15 | wsUrl | WebSocket 地址 |
lib/core/services/api/api_client.dart:11 | serverUrl(注释) | 本地开发示例 |
lib/core/services/api/api_client.dart:12 | wsUrl(注释) | 本地开发示例 |
| 文件(含行号) | 变量/内容 | 说明 |
|---|---|---|
admin/.env.development:13 | VITE_API_PROXY_URL | 本地开发代理后端 |
admin/.env.development:10 | VITE_API_URL | 前端请求前缀 |
admin/.env.production:7 | VITE_API_URL | 生产后端地址 |
admin/.env.production:4 | VITE_BASE_URL | 后台部署子路径(如 /admin/) |
admin/.env:10 | VITE_BASE_URL | 通用默认值 |
| 文件(含行号) | 内容 | 说明 |
|---|---|---|
lib/features/settings/pages/profile_page.dart:1005 | 邀请链接域名 | 复制分享时的域名 |
lib/features/moments/pages/moments_page.dart:7426 | localhost 替换 | 本地 URL 兼容逻辑 |
android/app/build.gradle.ktsrelease 使用的是 debug 签名,需要改为正式签名:release 签名配置。android/key.propertiesbuild.gradle.kts 中加载 key.properties(示意,需按你项目结构调整)build/app/outputs/flutter-apk/app-release.apk