You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中Firebase App Attest调试令牌在iOS模拟器失效

iOS模拟器Firebase App Attest权限拒问题排查方案

以下是针对你遇到的iOS模拟器无法通过App Check验证的具体排查点:

  • 确认iOS模拟器的调试令牌是否正确匹配
    确保你添加到Firebase控制台的调试令牌是当前运行的iOS模拟器生成的,而非真机令牌。模拟器的UDID和设备完全不同,每次更换模拟器(或重置模拟器)都需要重新获取新的调试令牌并添加。另外检查Firebase控制台里的调试令牌是否选择了对应iOS平台,别和安卓的混在一起。

  • 强制iOS模拟器使用App Check调试提供者
    App Attest本身不支持iOS模拟器,你必须为模拟器单独指定调试提供者。在Flutter的App Check初始化代码里,要判断运行环境,给iOS模拟器切换到调试模式:

    import 'dart:io' show Platform;
    
    FirebaseAppCheck.instance.activate(
      androidProvider: AndroidProvider.playIntegrity,
      appleProvider: Platform.isIOS && !Platform.isPhysicalDevice
          ? AppleProvider.debug
          : AppleProvider.appAttest,
    );
    

    如果全程用AppleProvider.appAttest,模拟器根本无法生成有效验证令牌,加了调试令牌也没用。

  • 还原app-attest-environment为development
    你把环境改成production会导致模拟器完全无法适配App Attest,production模式仅适用于已上架的真机App。调试阶段必须改回development,或者通过代码动态切换环境(仅在debug模式下用development)。

  • 检查Xcode调试配置

    1. 在Xcode的运行scheme中,添加环境变量FIREBASE_APP_CHECK_DEBUG_TOKEN,值设为1,确保调试模式下能输出令牌日志。
    2. 确认Info.plist中添加了FirebaseAppCheckDebugEnabled并设为YES,开启调试模式支持。
    3. 模拟器不需要开启App Attest能力,你可以暂时移除Xcode中的App Attest能力,真机再加上。
  • 清理模拟器缓存与重装App
    模拟器可能缓存了旧的无效验证令牌,直接卸载App后,重置模拟器内容(Xcode菜单:Device > Erase All Content and Settings),再重新运行App获取新的调试令牌添加到Firebase控制台。

内容的提问来源于stack exchange,提问作者tomtom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:35:06