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

iOS端App Attestation验证失败(Android正常),如何修复?

iOS App Check 403 "App attestation failed" 修复建议

以下是针对你遇到的iOS端App Check验证失败问题的具体修复步骤:

  • 确认DeviceCheck密钥配置准确性
    检查Firebase控制台中iOS App Check的DeviceCheck密钥:

    • 确保密钥关联的Apple开发者账号DeviceCheck私钥有效,Bundle ID与App完全一致,无拼写错误。
    • 验证私钥是否在有效期内,未过期且已正确激活。
  • 检查调试令牌配置
    当前请求使用exchangeDebugToken,说明处于调试模式:

    • 需在Firebase控制台添加该iPhone 6s的调试令牌。可通过Xcode控制台或启动时打印AppCheck.debugToken获取令牌,复制到控制台的调试令牌列表中(每个测试设备需单独添加)。
  • 验证App签名与权限

    • 在Apple开发者后台的App ID配置中,确认已勾选DeviceCheck服务;Xcode中使用的签名证书需关联该App ID。
    • 调试时确认Info.plist中添加了FirebaseAppCheckDebugEnabled,正式环境需移除该配置,避免模式混淆。
  • 确认DeviceCheck框架集成正确性
    确保项目正确导入DeviceCheck框架,且App启动时正确初始化App Check:

    import Firebase
    import FirebaseAppCheck
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        FirebaseApp.configure()
        let providerFactory = AppCheckProviderFactory.deviceCheckProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        return true
    }
    
  • 检查Firebase项目规则与权限

    • 确认Firebase控制台中App Check规则允许iOS App访问Firestore服务,无错误的拒绝策略。
    • 检查项目IAM权限,确保Firebase App Check服务账号具备设备令牌验证的足够权限。
  • 测试正式环境验证
    若调试模式问题持续,可临时切换到正式模式:移除FirebaseAppCheckDebugEnabled配置,重新打包安装到真机,验证是否能正常通过App Check。若正式模式正常,说明调试令牌配置存在问题。

  • 验证设备系统版本
    DeviceCheck要求iOS 11.0及以上,确认iPhone 6s的系统版本符合要求,避免因系统版本过低导致验证失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:12:23