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

Fastlane构建Xcode项目时SPM依赖随机报错,IDE构建正常

SPM依赖在Fastlane构建中随机报错(Xcode IDE构建正常)

环境信息

  • 依赖管理:Swift Package Manager (SPM)
  • 依赖版本:Facebook SDK 17.0.0、Firebase 10.25.0
  • Xcode版本:15.3(15E204a)

问题现象

使用Fastlane构建项目时,会随机出现多种SPM依赖相关错误,但在Xcode IDE中构建完全正常。已尝试以下操作,均未解决问题:

  • 清理构建
  • 删除Derived Data文件夹
  • 重置SPM缓存
  • 重新解析依赖包
  • 升级依赖版本
  • 删除Finder中的SPM缓存
  • 重装Xcode

执行xcodebuild -resolvePackageDependencies命令时的具体报错如下:

$ xcodebuild -resolvePackageDependencies -workspace ./myapp.xcworkspace -scheme Test -configuration Test
INFO [2024-05-01 12:56:49.87]: ▸ Command line invocation:
INFO [2024-05-01 12:56:49.87]: ▸     /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -resolvePackageDependencies -workspace ./myapp.xcworkspace -scheme Test -configuration Test
INFO [2024-05-01 12:56:49.87]: ▸ User defaults from command line:
INFO [2024-05-01 12:56:49.87]: ▸     IDEPackageSupportUseBuiltinSCM = YES
INFO [2024-05-01 12:56:52.76]: ▸ Resolve Package Graph
INFO [2024-05-01 12:57:11.32]: ▸ file not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurement/GoogleAppMeasurement.zipdownloaded archive of binary target 'grpcpp' from 'https://dl.google.com/firebase/ios/bin/grpc/1.62.2/rc0/grpcpp.zip' does not contain a binary artifact.fatalError

 file not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurementOnDeviceConversion/GoogleAppMeasurementOnDeviceConversion.zipfile not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurementIdentitySupport/GoogleAppMeasurementIdentitySupport.zipfatalError

 failed downloading 'https://github.com/facebook/facebook-ios-sdk/releases/download/v17.0.0/FBSDKCoreKit_Basics-Dynamic_XCFramework.zip' which is required by binary target 'FBSDKCoreKit_Basics': /Users/ashishn/Library/Caches/org.swift.swiftpm/artifacts/https___github_com_facebook_facebook_ios_sdk_releases_download_v17_0_0_FBSDKCoreKit_Basics_Dynamic_XCFramework_zip already exists in file systemfatalError

 file not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/firebase-ios-sdk/FirebaseAnalytics/FirebaseAnalytics.zipdownloaded archive of binary target 'absl' from 'https://dl.google.com/firebase/ios/bin/abseil/1.2024011601.1/rc0/absl.zip' does not contain a binary artifact.fatalError

file not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurement/GoogleAppMeasurement.zipfile not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurementIdentitySupport/GoogleAppMeasurementIdentitySupport.zipfatalError

file not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurementOnDeviceConversion/GoogleAppMeasurementOnDeviceConversion.zipfile not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurementIdentitySupport/GoogleAppMeasurementIdentitySupport.zipfile not found at path: /Users/ashishn/Library/Developer/Xcode/DerivedData/myapp-czdezuacbcsdupcakjbpxibcrpbj/SourcePackages/artifacts/googleappmeasurement/GoogleAppMeasurement/GoogleAppMeasurement.zipdownloaded archive of binary target 'grpcpp' from 'https://dl.google.com/firebase/ios/bin/grpc/1.62.2/rc0/grpcpp.zip' does not contain a binary artifact.fatalError

可能的解决方案

1. 在Fastlane中添加强制清理SPM缓存的步骤

在Fastlane构建脚本开头,添加以下命令彻底清理SPM相关缓存:

# 删除SPM全局缓存
rm -rf ~/Library/Caches/org.swift.swiftpm
# 删除项目Derived Data中的SPM artifacts
rm -rf ~/Library/Developer/Xcode/DerivedData/*/SourcePackages/artifacts

2. 调整xcodebuild命令参数

执行xcodebuild时,指定自定义的SPM缓存路径,避免全局缓存冲突:

xcodebuild -resolvePackageDependencies -workspace ./myapp.xcworkspace -scheme Test -configuration Test -clonedSourcePackagesDirPath ./SourcePackages

3. 禁用SPM内置SCM

在xcodebuild命令中添加参数,关闭内置版本控制工具的干扰:

xcodebuild -resolvePackageDependencies -workspace ./myapp.xcworkspace -scheme Test -configuration Test IDEPackageSupportUseBuiltinSCM=NO

4. 调整Xcode版本

Xcode 15.3的SPM存在已知的二进制依赖缓存问题,可尝试降级到15.2或升级到15.4及以上版本验证问题是否消失。

5. 检查网络稳定性

报错中的文件缺失、下载失败可能由网络波动导致不完整下载,确保构建前网络连接稳定,必要时可优化网络环境加速依赖下载。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 01:22:02