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缓存
- 打开Azure DevOps项目的流水线页面,找到目标iOS构建流水线并进入编辑模式。
- 编辑流水线的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
- 若用
- 保存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
相关产品推荐
相关产品推荐

