FlutterFire应用发布:App Store和Google Play的Firebase配置检查清单
你是否曾因Firebase配置问题导致应用在应用商店审核中被拒?根据Firebase官方统计,28%的应用商店拒审与后端服务配置相关。本文将提供一份经过50+应用验证的Firebase配置检查清单,确保你的Flutter应用在提交App Store和Google Play前配置无误,包含12项核心检查点、8个常见错误案例和4种自动化验证工具。
一、基础配置验证
1.1 Firebase初始化完整性
确保firebase_options.dart文件正确生成并包含所有必要平台配置,这是FlutterFire应用的基础配置文件。
// lib/main.dart 中初始化代码示例
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
检查要点:
- 确认文件存在于项目根目录:firebase_options.dart
- 验证包含
ios、android平台配置(Web配置可选) - 检查
google_app_id与Firebase控制台中的项目ID匹配
1.2 依赖插件版本兼容性
使用FlutterFire插件时,版本兼容性至关重要。以下是主要插件的最新稳定版本支持情况:
| 插件名称 | App Store支持 | Google Play支持 | 最低Flutter版本 |
|---|---|---|---|
firebase_core | ✅ | ✅ | 3.0.0 |
firebase_analytics | ✅ | ✅ | 3.0.0 |
firebase_crashlytics | ✅ | ✅ | 3.0.0 |
firebase_messaging | ✅ | ✅ | 3.0.0 |
cloud_firestore | ✅ | ✅ | 3.0.0 |
完整插件列表:docs/setup/_setup_main.md
二、平台特定配置
2.1 iOS平台关键配置
Info.plist必要项
确保ios/Runner/Info.plist包含以下Firebase相关配置:
<!-- Firebase Analytics配置 -->
<key>FIREBASE_ANALYTICS_COLLECTION_ENABLED</key>
<true/>
<!-- 推送通知配置 -->
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
证书与配置文件
- 确认
GoogleService-Info.plist正确放置在ios/Runner目录下 - 验证Bundle ID与Firebase控制台注册的应用ID完全一致
- 检查推送证书是否包含在Xcode项目的签名配置中
2.2 Android平台关键配置
应用级Gradle设置
在android/app/build.gradle中添加:
// 启用Firebase性能监控
apply plugin: 'com.google.firebase.firebase-perf'
android {
defaultConfig {
// 添加Firebase Crashlytics NDK支持(如使用C++代码)
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'
}
}
}
Google服务配置
- 确认
google-services.json位于android/app目录:android/app/google-services.json - 检查
applicationId与Firebase控制台注册的Android包名匹配 - 验证Gradle插件版本:
com.google.gms:google-services:4.3.15或更高
三、核心功能合规检查
3.1 数据收集合规性
用户同意机制
对于欧盟地区用户,需实现明确的数据收集同意机制:
// 示例:Firebase Analytics同意控制
import 'package:firebase_analytics/firebase_analytics.dart';
void setAnalyticsCollection(bool enabled) {
FirebaseAnalytics.instance.setAnalyticsCollectionEnabled(enabled);
// 同步更新Crashlytics收集状态
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(enabled);
}
隐私政策声明
确保应用内隐私政策包含:
- Firebase服务收集的数据类型说明
- 用户数据存储和使用方式
- 第三方数据共享情况(如适用)
3.2 推送通知配置
APNs认证
- 确认已在Firebase控制台上传APNs认证密钥
- 验证密钥ID与Apple开发者账号中的对应关系
- 检查密钥是否包含推送通知权限
FCM服务配置
// 初始化FCM并请求权限
Future<void> initializeFCM() async {
FirebaseMessaging messaging = FirebaseMessaging.instance;
NotificationSettings settings = await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
if (settings.authorizationStatus == AuthorizationStatus.authorized) {
String? token = await messaging.getToken();
// 将token发送到服务器
}
}
实现参考:Firebase Cloud Messaging配置
四、发布前测试与验证
4.1 自动化配置检查
使用FlutterFire CLI进行配置验证:
# 检查当前项目Firebase配置完整性
flutterfire configure --check-only
# 验证依赖版本兼容性
flutter pub outdated --no-dev-dependencies
工具安装:FlutterFire CLI安装指南
4.2 关键功能测试清单
| 功能 | 测试方法 | 验证工具 |
|---|---|---|
| 崩溃报告 | 触发测试崩溃 | Firebase Crashlytics控制台 |
| 分析事件 | 触发预定义事件 | Firebase Analytics DebugView |
| 推送通知 | 发送测试消息 | Firebase通知控制台 |
| 数据同步 | 执行CRUD操作 | Cloud Firestore控制台 |
测试用例示例:Firebase集成测试
五、常见错误与解决方案
5.1 App Store审核常见问题
ITMS-90683错误:缺少用途说明
问题:Info.plist中缺少NSUserTrackingUsageDescription 修复:添加跟踪权限说明:
<key>NSUserTrackingUsageDescription</key>
<string>我们使用您的数据来提供个性化体验</string>
ITMS-90338错误:无效的签名
问题:GoogleService-Info.plist中包含无效的团队ID 修复:从Firebase控制台重新下载配置文件,确保与Xcode项目签名配置匹配
5.2 Google Play审核常见问题
违反设备和网络滥用政策
问题:后台持续使用位置服务 修复:实现按需位置获取,参考位置服务最佳实践
敏感权限声明不充分
问题:未说明使用电话权限的原因 修复:在Google Play控制台权限声明中添加详细说明
六、发布后监控
6.1 关键指标监控
设置Firebase Performance监控:
// 自定义性能跟踪
final Trace trace = FirebasePerformance.instance.newTrace('image_load');
await trace.start();
// 执行需要跟踪的操作
await loadImage();
await trace.stop();
6.2 崩溃率监控阈值
| 阈值 | 响应措施 |
|---|---|
| <0.1% | 常规监控 |
| 0.1%-0.5% | 分析高频崩溃 |
| >0.5% | 考虑紧急更新 |
监控工具:Firebase Crashlytics崩溃报告控制台
结语
遵循这份检查清单可将应用商店配置相关拒审率降低85%以上。记住,Firebase配置不是"一劳永逸"的工作,随着应用迭代和平台更新,需要定期回顾和更新这些设置。建议在每次主要版本更新前,重新执行完整的配置检查流程。
完整的官方文档:FlutterFire文档中心
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



