Flutter iOS pod update报错:无法安装FBSDKMarketingKit
问题背景
按照官方指引升级最新版Facebook SDK时,执行pod update命令出现域名解析失败错误,报错指向主机origincache.facebook.com无法解析,安装FBSDKMarketingKit (4.38.0)阶段中断。
报错日志
Downloading dependencies Installing AppAuth (1.5.0) Installing Bolts (1.9.1) Installing BoringSSL-GRPC (0.0.24) Installing FBAEMKit (13.2.0) Installing FBSDKCoreKit (13.2.0) Installing FBSDKCoreKit_Basics (13.2.0) Installing FBSDKLoginKit (13.2.0) Installing FBSDKMarketingKit (4.38.0) [!] Error installing FBSDKMarketingKit [!] /usr/bin/curl -f -L -o /var/folders/tg/wkq_y0195v5fkm57j908f33h0000gn/T/d20220703-51482-10hvmb9/file.zip https://origincache.facebook.com/developers/resources/?id=FacebookSDKs-iOS-4.38.0.zip --create-dirs --netrc-optional --retry 2 -A 'CocoaPods/1.11.3 cocoapods-downloader/1.4.0' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: origincache.facebook.com Warning: Problem : timeout. Will retry in 1 seconds. 2 retries left. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: origincache.facebook.com Warning: Problem : timeout. Will retry in 2 seconds. 1 retries left. 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: origincache.facebook.com
环境信息
flutter doctor运行结果:
Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.0.3, on macOS 12.4 21F79 darwin-x64, locale en-GB) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 13.4.1) [✓] Chrome - develop for the web [✓] Android Studio (version 2021.2) [✓] VS Code (version 1.68.1) [✓] Connected device (3 available) [✓] HTTP Host Availability
本地开发配置:
- Xcode v13.4.1
- macOS 12.4 (Monterey),Intel芯片机型
可行解决方案
按优先级从高到低尝试,每步操作完重新执行pod update验证结果:
- 刷新本地DNS配置
域名解析失败是直接诱因,打开macOS系统设置-网络-当前连接网络-DNS项,添加公共DNS地址114.114.114.114、8.8.8.8,保存后执行sudo dscacheutil -flushcache刷新本地DNS缓存再重试。 - 清理过时的FBSDKMarketingKit依赖
报错的FBSDKMarketingKit 4.38.0是Facebook已废弃的旧版营销SDK,13.x版本的新版Facebook SDK已经不再依赖该组件,出现该问题基本是Podfile或Podfile.lock中残留了旧版本依赖声明:- 打开项目iOS目录下的
Podfile,搜索手动添加的FBSDKMarketingKit依赖项,直接删除整行 - 执行
pod deintegrate清理旧的pod安装产物,删除Podfile.lock文件,重新执行pod install --repo-update
- 打开项目iOS目录下的
- 强制锁定Facebook SDK版本避免拉取旧包
如果是Flutter项目,检查pubspec.yaml中引入的facebook相关插件版本,部分旧版本的flutter_facebook_auth插件会默认拉取过时的MarketingKit依赖,直接升级flutter_facebook_auth到最新稳定版即可;也可以在Podfile最顶部添加全局版本约束,强制所有Facebook相关SDK使用13.2.0版本:$FBSDKVersion = '13.2.0' - 检查本地网络代理规则
如果本地开启了网络代理,确认终端环境下的代理规则没有拦截facebook相关域名,可直接执行curl https://origincache.facebook.com测试连通性,如果访问被拦截,调整代理规则或临时关闭代理后重试。
注意:不要尝试手动下载旧版FBSDKMarketingKit包本地导入,该版本SDK已停止维护,存在合规和稳定性风险,优先选择移除旧依赖、升级官方新版SDK的路径解决问题。
内容的提问来源于stack exchange,提问作者SamHeyman
相关产品推荐
相关产品推荐

