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

Swift通过SPM集成Firebase后出现"Access level on imports require '-enable-experimental-feature AccessLevelOnImport'"编译错误的求助

Swift通过SPM集成Firebase后出现"Access level on imports require '-enable-experimental-feature AccessLevelOnImport'"编译错误的求助

我之前也碰到过一模一样的问题,折腾了好一会儿才解决,给你几个亲测有效的方案试试:

1. 直接添加实验性编译标志

既然错误提示明确要求启用这个实验特性,那我们手动把标志加上就好,步骤很简单:

  • 打开Xcode,选中项目导航栏最顶部的项目文件
  • 切换到Build Settings标签,在搜索框输入Other Swift Flags
  • 给项目本身以及所有关联的Target(包括测试Target)都添加这个编译标志:-enable-experimental-feature AccessLevelOnImport
    别漏了任何一个需要编译的Target,不然可能还会有残留的错误。

2. 彻底锁定Firebase到兼容版本并清理缓存

你试过降级到11.0.0,但可能SPM还是偷偷拉了新的依赖?可以试试更彻底的版本锁定:

  • 进入Xcode的Package Dependencies界面,找到Firebase依赖
  • 把版本选择从范围改成Exact Version,直接输入11.0.0
  • 执行Product > Clean Build Folder(快捷键是Shift+Cmd+K)清空构建缓存
  • 再通过File > Packages > Reset Package Caches重置SPM的依赖缓存
  • 最后重新Build项目,大概率能解决

3. 检查并强制指定依赖库版本

这个错误大概率是Firebase的依赖(比如GoogleUtilities)引入的,你可以手动锁定这个依赖的兼容版本:

  • 在Package Dependencies里展开Firebase的依赖树,查看GoogleUtilities的版本
  • 如果它的版本是11.x及以上,直接把GoogleUtilities也添加到你的Package依赖中,指定一个和Firebase 11.0.0兼容的版本(比如7.11.0,这个是Firebase 11.0.0默认依赖的稳定版)
  • 这样能强制SPM拉取兼容的依赖,避免自动升级到带实验特性的版本

4. 彻底重置SPM依赖

如果上面的方法都没用,那就来个“一刀切”:

  • 从Package Dependencies里移除所有和Firebase相关的依赖
  • 清理Build Folder和Package Caches(步骤和上面一样)
  • 重新添加Firebase,直接选择Exact Version 11.0.0,等依赖下载完成后再Build

补充一句:这个问题主要是Firebase 11.0.0之后的版本里,部分依赖库开始使用了Swift的实验性导入语法,而Xcode默认没有开启这个特性,所以才会触发错误。如果你不想用实验性标志,锁定到11.0.0这种稳定版本是更稳妥的选择。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 14:53:15