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

Azure DevOps集成iOS项目遇IDEContainerErrorDomain Code=6错误求助

Azure DevOps构建iOS项目:Cannot open "Docs.docc" 错误解决指南

错误信息

Error: Error Domain=com.apple.dt.IDEContainerErrorDomain Code=6 "Cannot open "Docs.docc" as a "Swift Package Folder" because it is already open as a "Folder"." UserInfo={NSLocalizedDescription=Cannot open "Docs.docc" as a "Swift Package Folder" because it is already open as a "Folder"

问题背景

此前iOS项目在Azure DevOps上构建正常,今日出现上述错误,排查后确认与Firebase SPM依赖的swift-log、SwiftProtoBuf有关,已升级Firebase至10.3.0但问题未解决,以下是具体解决方法:


一、禁用Azure DevOps的SPM缓存

  1. 打开Azure DevOps项目的流水线页面,找到目标iOS构建流水线并进入编辑模式。
  2. 编辑流水线的YAML配置,找到处理SPM依赖的任务(一般是Xcode@5任务或自定义脚本):
    • 若用Xcode@5任务,添加disablePackageRepositoryCache: true参数:
      - task: Xcode@5
        inputs:
          actions: 'resolvePackageDependencies'
          scheme: '你的项目Scheme'
          sdk: 'iphoneos'
          configuration: 'Release'
          disablePackageRepositoryCache: true
      
    • 若用自定义xcodebuild脚本,追加-disablePackageRepositoryCache参数:
      xcodebuild resolvePackageDependencies -scheme 你的项目Scheme -sdk iphoneos -disablePackageRepositoryCache
      
  3. 保存YAML并重新运行流水线,验证错误是否消除。

二、补充解决方法

  • 清理CI机器的SPM缓存:在构建脚本开头添加清理命令,彻底清除旧缓存:
    rm -rf ~/Library/Caches/org.swift.swiftpm
    rm -rf $(BUILD_SOURCESDIRECTORY)/.build
    
  • 检查项目配置:确认是否手动将Docs.docc作为普通文件夹添加到项目中,若有则移除,重新通过SPM引入Firebase依赖。
  • 锁定依赖版本:在Package.swift中指定swift-log和SwiftProtoBuf的具体版本范围,避免自动升级到引发冲突的版本,示例:
    dependencies: [
        .package(url: "https://github.com/firebase/firebase-ios-sdk.git", from: "10.3.0"),
        .package(url: "https://github.com/apple/swift-log.git", exact: "1.5.3"),
        .package(url: "https://github.com/apple/swift-protobuf.git", exact: "1.25.2")
    ]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:20:23