iOS模拟器中Firebase App Check调试令牌不显示问题求助
问题排查与解决步骤
1. 核对iOS Info.plist配置
确保在iOS项目的Info.plist文件中正确添加调试启用项,且格式无误:
<key>FirebaseAppCheckDebugEnabled</key> <true/>
注意该配置必须放在<dict>标签内部,仅在Debug模式下生效。
2. 修正Flutter端App Check初始化逻辑
确保针对iOS调试环境使用AppleProvider.debug,示例代码:
import 'package:flutter/foundation.dart'; import 'package:firebase_app_check/firebase_app_check.dart'; // 在初始化Firebase后激活App Check void initAppCheck() async { await FirebaseAppCheck.instance.activate( androidProvider: AndroidProvider.playIntegrity, appleProvider: kDebugMode ? AppleProvider.debug : AppleProvider.appAttest, ); }
必须通过kDebugMode区分调试与生产环境,避免Release模式下误用调试提供者。
3. 检查日志输出位置
调试令牌不会在Flutter终端输出,而是打印在Xcode的控制台中:
- 打开Xcode,运行模拟器后查看底部的Console面板
- 搜索关键词
AppCheck或Debug token快速定位令牌内容
4. 确保Xcode运行环境为Debug模式
- 在Xcode顶部的Scheme选择器中,确认当前运行模式为
Debug(而非Release) - 执行
Product > Clean Build Folder清理缓存后重新运行项目
5. 强制获取并打印调试令牌
如果以上步骤仍未看到令牌,可在代码中手动调用获取接口并打印:
// 激活App Check后调用 final appCheckToken = await FirebaseAppCheck.instance.getToken(); print('App Check Debug Token: ${appCheckToken?.token}');
此时令牌会输出在Flutter终端,复制该令牌到Firebase控制台的App Check调试设备列表中。
6. 验证Firebase控制台配置
- 确认iOS应用的Bundle ID与Firebase控制台中注册的完全一致
- 将获取到的调试令牌添加到Firebase控制台「App Check」页面对应的iOS应用的「调试设备」列表中
完成以上步骤后,iOS模拟器的Firebase RTDB请求即可通过App Check验证,await调用将正常完成。
内容的提问来源于stack exchange,提问作者treble18
相关产品推荐
相关产品推荐

