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

macOS沙盒环境下Firestore读取报错无法访问com.apple.dnssd.service

macOS端Firebase沙盒dnssd报错解决方案

报错根因

该报错和普通进出站网络权限无关,是Firebase SDK默认通过Bonjour服务(即com.apple.dnssd.service)做就近服务节点发现,macOS沙盒要求应用显式声明对应服务访问权限,仅开进出站网络权限不会授予Bonjour访问资格。

修复步骤

  • 补充沙盒本地网络权限
    打开macOS Target的Signing & Capabilities页,在App Sandbox配置栏勾选Local Network选项,该权限是应用访问Bonjour服务的前置依赖。
  • 显式声明Bonjour服务
    在同个Signing & Capabilities页添加Bonjour Services能力,点击新增按钮填入两个Firebase依赖的服务标识:
    • _firebase._tcp
    • _firestore._tcp
  • 补全权限弹窗说明
    打开macOS Target的Info.plist文件,添加NSLocalNetworkUsageDescription键,值填写权限用途说明即可,例如需要访问网络以连接Firebase云端服务,macOS 11及以上版本要求本地网络权限必须配置说明文案才会生效。
  • 清理构建缓存重编译
    按下Shift + Command + K执行Xcode清理操作,删除项目对应DerivedData缓存后重新全量编译,避免旧权限配置缓存导致修改不生效。

兜底修复方案

如果完成上述配置后仍触发报错,可以在Firebase初始化阶段关闭本地节点发现逻辑,强制直连Firebase官方节点,跳过Bonjour服务调用。在执行FirebaseApp.configure()前添加如下代码:

import FirebaseFirestore

let firestoreSettings = FirestoreSettings()
firestoreSettings.host = "firestore.googleapis.com"
firestoreSettings.isSSLEnabled = true
Firestore.firestore().settings = firestoreSettings

说明:该方案会跳过Firebase就近节点自动调度,首次连接延迟可能略有上升,但可以完全规避dnssd相关的沙盒拦截问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 00:03:20