iOS项目集成Firebase遇GTMURLBuilder类已弃用问题求解决方案
修复GTMURLBuilder.m的Deprecated Class警告
我之前也碰到过这个烦人的警告,本质是依赖版本不匹配导致的——Firebase的部分组件还在引用旧版GoogleToolboxForMac(GTM)里的GTMURLBuilder,而新版GTM已经把这个类标记为废弃了。下面是几个优先级从高到低的解决办法:
1. 优先更新所有Firebase依赖到最新版
Firebase团队一直在跟进依赖迭代,最新版本大概率已经替换掉了对废弃GTMURLBuilder的引用:
- 如果你用CocoaPods,终端里跑这个命令:
这会把所有Firebase组件同步更到最新,顺带更新它的所有依赖(包括GTM)。pod update Firebase - 如果你用Swift Package Manager(SPM),直接在Xcode的项目设置里找到Firebase依赖,选择「Update to Latest Package Versions」就行。
2. 强制指定GoogleToolboxForMac的最新稳定版
要是更新Firebase后警告还在,可能是CocoaPods默认拉取了兼容旧逻辑的GTM版本。可以手动在Podfile里加一行:
pod 'GoogleToolboxForMac', '~> 2.3' # 也可以换成当前最新的稳定版本号
然后运行pod install,新版GTM里已经用GTMURLComponents替代了旧的GTMURLBuilder,还自带兼容层,不会影响现有功能。
3. 临时屏蔽警告(应急用,不推荐长期用)
如果上面的方法暂时没法落地,你可以先把这个警告藏起来:
- 在Xcode里找到
GTMURLBuilder.m文件; - 打开右侧的「File Inspector」,在「Build Settings」区域找到「Other Warning Flags」;
- 添加
-Wno-deprecated-declarations,这个类的废弃警告就不会再弹出来了。
提醒:这只是权宜之计,还是建议从更新依赖的根源解决问题。
4. 排查其他第三方库的旧版GTM依赖
有时候问题可能出在项目里其他第三方库身上——它们可能也引用了旧版GTM。可以试试用pod deintegrate清理所有Pods后重新pod install,或者用pod outdated查看所有过时依赖,逐一更新。
内容的提问来源于stack exchange,提问作者J A S K I E R
相关产品推荐
相关产品推荐

