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

集成Firebase Performance后NSURLSession请求无回调问题求助

解决Firebase Performance导致NSURLSession请求无回调的问题

我之前也碰到过一模一样的情况,大概率是Firebase Performance的网络拦截逻辑和你的NSURLSession配置发生了冲突。给你几个实用的排查和解决方向:

  • 检查NSURLSession的自定义配置
    Firebase Performance会自动拦截NSURLSession请求来收集性能数据,但如果你的session用了自定义delegate或者修改过configuration(比如自定义protocolClasses),很容易和Firebase的拦截逻辑撞车。你可以先暂时移除这些自定义配置,看看请求是否恢复正常,再逐步排查具体的冲突点。

  • 延迟启用Firebase Performance监控
    不一定非要在[FIRApp configure]之前直接禁用,你可以先关闭监控,等App初始化完成、所有必要的NSURLSession都设置好之后,再手动开启:

    // 先禁用监控,避免初始化阶段冲突
    [[FIRPerformance sharedInstance] setInstrumentationEnabled:NO];
    [FIRApp configure];
    
    // 在App启动流程的末尾或者某个初始化完成的回调里开启监控
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [[FIRPerformance sharedInstance] setInstrumentationEnabled:YES];
    });
    

    这样既能保留性能监控功能,又能避开初始化阶段的冲突问题。

  • 排除特定URL的监控
    如果只有部分请求出问题,可以把这些请求的URL加入Firebase的排除列表,不让它拦截这些请求:

    FIRPerformanceConfiguration *config = [FIRPerformanceConfiguration sharedInstance];
    [config setURLFilter:^BOOL(NSURL * _Nonnull url) {
        // 返回YES表示监控该URL,NO则跳过监控
        return ![url.absoluteString containsString:@"你的异常请求域名/路径"];
    }];
    [FIRApp configure];
    

    这种方式可以精准跳过有问题的请求,不影响其他请求的性能数据收集。

  • 更新Firebase SDK版本
    旧版本的Firebase Performance确实存在一些NSURLSession拦截的兼容性bug,建议把所有Firebase相关的SDK都更新到最新稳定版,很多这类问题在新版本里已经被修复了。

另外,你可以打开Xcode的控制台,搜索FirebasePerformance相关的日志输出,有时候会有冲突或错误的提示信息,能帮你更快定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:37:50