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

XCode 15.2中lldb po命令失效,报GTMSessionFetcherCore模块未找到

修复Xcode 15.2中LLDB po 命令触发的模块找不到报错

问题根源

Xcode 15.2的LLDB存在bug,会错误地给CocoaPods管理的项目启用SWIFT_PACKAGE预编译宏,导致GIDGoogleUser.h里的条件编译逻辑走了Swift Package的导入分支(@import GTMSessionFetcherCore;),但你的项目是用CocoaPods引入的GTMSessionFetcherCore,它以静态库/头文件形式存在而非Swift Package模块,因此触发“module not found”错误。

修复方案

方案1:临时修改GoogleSignIn头文件(快速生效)

找到Pods/GoogleSignIn/GoogleSignIn/Sources/Public/GoogleSignIn/GIDGoogleUser.h,修改第27行的条件编译逻辑,强制走CocoaPods分支:

// 原代码
#if defined(SWIFT_PACKAGE)
@import GTMSessionFetcherCore;
#else
#import <GTMSessionFetcher/GTMSessionFetcher.h>
#endif

// 修改后
//#if defined(SWIFT_PACKAGE)
//@import GTMSessionFetcherCore;
//#else
#import <GTMSessionFetcher/GTMSessionFetcher.h>
//#endif

注意:执行pod install或pod update后会覆盖修改,需要重新操作。

方案2:给LLDB添加宏定义屏蔽SWIFT_PACKAGE

  1. 打开Xcode,进入项目的Edit Scheme → Run → Arguments标签页
  2. 在Environment Variables点+,添加变量:
    • 变量名:LLDB_PREPEND_FRAMEWORK_SEARCH_DIRS
    • 变量值:NO
  3. 或者每次调试时在LLDB控制台直接执行:
    settings set target.swift-framework-search-paths ""
    settings set target.preprocessor-definitions '${target.preprocessor-definitions} -DSWIFT_PACKAGE=0'
    

这个方法会强制LLDB不启用SWIFT_PACKAGE宏,让头文件走正确的导入逻辑。

方案3:升级依赖或Xcode版本

  • 把GoogleSignIn的CocoaPods版本升级到最新稳定版,部分新版本已修复该条件编译的兼容性问题
  • 尝试升级Xcode到15.3及以上,苹果大概率在后续版本修复了LLDB的这个宏定义bug

验证方法

修改后重启Xcode,清理DerivedData,运行项目后在LLDB控制台执行po命令,检查是否还会抛出模块找不到的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:02:03