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

使用fastlane构建时Swift Package Manager无法下载Firebase依赖

解决Fastlane Gym解析Firebase依赖时网络连接丢失的问题

问题场景

执行Fastlane的gym(skip_package_dependencies_resolution: false)命令构建项目时,解析Firebase iOS SDK(依赖仓库https://github.com/firebase/firebase-ios-sdk.git)过程中,出现下载二进制目标GoogleAppMeasurement失败的错误,具体报错为:

无法下载二进制目标GoogleAppMeasurement所需的文件https://dl.google.com/firebase/ios/swiftpm/8.15.0/GoogleAppMeasurement.zip,错误为downloadError("Error Domain=NSURLErrorDomain Code=-1005 "The network connection was lost." ...")

但直接通过浏览器下载该文件、使用Xcode构建项目均能正常完成。

可行解决方案

1. 清理缓存并重置网络配置

Fastlane的独立缓存或网络会话可能出现异常,执行以下命令清理相关缓存:

rm -rf ~/Library/Caches/fastlane
rm -rf ~/Library/Caches/com.google.Firebase
rm -rf ~/Library/Caches/org.swift.swiftpm/repositories/firebase-ios-sdk-*

若使用代理环境,可提前导出系统代理配置后再执行构建:

export HTTP_PROXY=$(scutil --proxy | grep 'HTTPProxy' | awk '{print $3}')
export HTTPS_PROXY=$(scutil --proxy | grep 'HTTPSProxy' | awk '{print $3}')
fastlane gym

2. 预下载依赖文件复用本地缓存

手动下载GoogleAppMeasurement.zip后,放入Swift Package的缓存目录:

  • 找到Xcode中Firebase依赖的缓存路径:~/Library/Caches/org.swift.swiftpm/repositories/firebase-ios-sdk-<随机哈希值>/artifacts/GoogleAppMeasurement/8.15.0/
  • 将下载好的文件放入该目录,修改gym命令参数禁用自动更新:
gym(
  skip_package_dependencies_resolution: false,
  disable_package_automatic_updates: true
)

3. 延长构建超时时间

网络连接丢失可能是下载超时导致,在Fastfile中设置更长的超时时间:

lane :your_build_lane do
  ENV["FASTLANE_XCODEBUILD_TIMEOUT"] = "1200" # 设置为20分钟超时
  gym(skip_package_dependencies_resolution: false)
end

4. 复用Xcode的依赖解析结果

让Fastlane跳过自身的依赖解析,先调用Xcode完成依赖处理:

gym(
  skip_package_dependencies_resolution: true,
  pre_build_script: "xcodebuild -resolvePackageDependencies -project YourProject.xcodeproj -scheme YourScheme"
)

将YourProject.xcodeproj和YourScheme替换为实际项目的工程文件和Scheme名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:50:40