Flutter应用从TestFlight转App Store:如何切换环境变量
切换Flutter应用API环境(TestFlight转生产)
下面是几种常用的切换API环境变量的方案,按需选择:
1. 用dart-define编译参数(快速直接)
这是最简单的临时切换方式,不需要修改项目配置文件,编译时通过命令行传递参数。
- 在Dart代码中获取环境变量:
// 定义API地址,默认用测试环境 final String apiBaseUrl = const String.fromEnvironment( 'API_BASE_URL', defaultValue: 'https://test-api.example.com', );
- 打包生产版本时,添加编译参数指定生产API:
# 打包iOS生产IPA(用于App Store提交) flutter build ipa --dart-define=API_BASE_URL=https://prod-api.example.com # 本地运行验证生产环境 flutter run --dart-define=API_BASE_URL=https://prod-api.example.com
2. 配置Flutter Flavors(长期多环境维护)
适合需要长期维护测试、生产等多环境的项目,通过Xcode配置区分环境。
编辑iOS项目的配置文件:
在ios/Runner/下的Debug.xcconfig和Release.xcconfig中分别添加:// Debug.xcconfig(对应TestFlight测试版本) API_BASE_URL=https://test-api.example.com // Release.xcconfig(对应App Store生产版本) API_BASE_URL=https://prod-api.example.com在
ios/Runner/Info.plist中引用配置:
<key>API_BASE_URL</key> <string>$(API_BASE_URL)</string>
- Dart代码中读取配置(可配合
package_info_plus插件更灵活判断):
import 'package:flutter/foundation.dart'; final String apiBaseUrl = kReleaseMode ? 'https://prod-api.example.com' : 'https://test-api.example.com';
- 打包生产版本直接打Release包即可:
flutter build ipa --release
3. 使用.env配置文件(依赖第三方包)
通过加载不同的.env文件来切换环境,需要依赖flutter_dotenv包。
- 根目录创建
.env.test和.env.prod文件:
# .env.test API_BASE_URL=https://test-api.example.com # .env.prod API_BASE_URL=https://prod-api.example.com
- 在
pubspec.yaml中添加依赖:
dependencies: flutter_dotenv: ^5.1.0
- 代码中根据运行模式加载对应配置:
import 'package:flutter/foundation.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; Future<void> main() async { await dotenv.load( fileName: kReleaseMode ? '.env.prod' : '.env.test', ); runApp(MyApp()); } // 使用时获取API地址 final String apiBaseUrl = dotenv.env['API_BASE_URL']!;
- 打包生产版本:
flutter build ipa --release
内容的提问来源于stack exchange,提问作者Juan Andres solanas
相关产品推荐
相关产品推荐

