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

Flutter项目pod install失败,无法拉取OneSignalXCFramework仓库

解决Flutter项目pod install拉取OneSignalXCFramework失败的问题

问题场景

首次运行Flutter项目执行pod install,使用onesignal_flutter: ^3.5.1(或最新版)插件时,拉取OneSignalXCFramework仓库失败,报错如下:

Installing GoogleDataTransport (9.3.0)
Installing GoogleUtilities (7.12.0)
Installing OneSignalXCFramework (3.12.4)

[!] Error installing OneSignalXCFramework
[!] /usr/bin/git clone https://github.com/OneSignal/OneSignal-iOS-SDK.git /var/folders/5f/bnc72_gj7430tsnm5bm42dsh0000gn/T/d20231208-56071-fzux4d --template= --single-branch --depth 1 --branch 3.12.4

Cloning into '/var/folders/5f/bnc72_gj7430tsnm5bm42dsh0000gn/T/d20231208-56071-fzux4d'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
error: 3182 bytes of body are still expected
fetch-pack: unexpected disconnect while reading sideband packet
fatal: early EOF
fatal: fetch-pack: invalid index-pack output

已尝试调整全局Git配置(如下)但未解决:

[user]
    name = shehan
    email = hello@gmail.com
[commit]
    template = .gitmessage
[http]
    postBuffer = 5242880000
    version = HTTP/1.1
[core]
    compression = 0
    packedGitLimit = 1024m 
    packedGitWindowSize = 1024m
[pack] 
    deltaCacheSize = 3096m 
    packSizeLimit = 3096m 
    windowMemory = 256m

环境:macOS Sonoma,Git版本2.39.3 (Apple Git-145)

可行解决方案

1. 切换Git协议为SSH

HTTPS拉取容易因网络或代理出问题,换成SSH协议试试:

  • 终端执行以下命令,让Git自动把GitHub的HTTPS链接替换成SSH:
    git config --global url."git@github.com:".insteadOf "https://github.com/"
    
  • 清理本地Pod缓存和旧文件:
    pod cache clean --all
    rm -rf Pods
    rm Podfile.lock
    
  • 重新执行pod install

2. 手动克隆仓库到Pod缓存目录

如果自动拉取失败,手动把指定版本的仓库放到Pod缓存里:

  • 创建缓存目录(不存在的话):
    mkdir -p ~/Library/Caches/CocoaPods/Pods/External/OneSignalXCFramework
    
  • 克隆指定版本的OneSignal仓库到该目录:
    git clone --single-branch --depth 1 --branch 3.12.4 git@github.com:OneSignal/OneSignal-iOS-SDK.git ~/Library/Caches/CocoaPods/Pods/External/OneSignalXCFramework
    
  • 再执行pod install

3. 升级Git版本

Apple自带的Git版本可能有兼容性问题,换成官方最新版:

  • 用Homebrew安装最新Git:
    brew install git
    
  • 配置终端优先使用Homebrew的Git,把下面内容加到~/.zshrc(或~/.bash_profile):
    export PATH="/usr/local/bin/git:$PATH"
    
  • 重启终端,验证版本:git --version,确认是最新版后重新pod install

4. 禁用深度克隆

深度克隆容易触发EOF问题,修改Podfile让它拉取完整仓库:

  • 在Podfile末尾添加这段代码:
    pre_install do |installer|
      installer.pod_targets.each do |pod|
        if pod.name == 'OneSignalXCFramework'
          pod.specs.each do |spec|
            spec.source[:git] = 'git@github.com:OneSignal/OneSignal-iOS-SDK.git'
            spec.source.delete(:depth)
          end
        end
      end
    end
    
  • 清理缓存后重新执行pod install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:50:40