安装Firebase Pods后Xcode出现gRPC-Core、gRPC-C++编译警告如何解决
gRPC相关编译警告说明与解决方案
运行影响说明
这个警告是Clang编译器对不符合C标准的类型声明的合规性提示,触发原因是gRPC-Core、gRPC-C的头文件中存在匿名类型通过typedef指定链接名的写法,不符合最新C++规范要求。
该警告属于编译层面的语法规范提示,不会对应用的实际运行产生任何不良影响,不会引发崩溃、逻辑异常等问题,你当前功能运行正常的情况下后续也不会出现相关故障。
警告消除方法
你可以通过CocoaPods的post_install钩子,仅针对gRPC相关库单独屏蔽该类警告,不会影响你自身项目代码的警告检测规则:
- 在你的Podfile末尾添加如下配置:
post_install do |installer| installer.pods_project.targets.each do |target| # 仅针对gRPC相关库屏蔽匿名类型typedef警告 if ['gRPC-Core', 'gRPC-C++'].include? target.name target.build_configurations.each do |config| # 处理C类编译配置 config.build_settings['OTHER_CFLAGS'] ||= ['$(inherited)'] config.build_settings['OTHER_CFLAGS'] << '-Wno-typedef-anonymous-enum-tag' # 处理C++类编译配置 config.build_settings['OTHER_CPLUSPLUSFLAGS'] ||= ['$(inherited)'] config.build_settings['OTHER_CPLUSPLUSFLAGS'] << '-Wno-typedef-anonymous-enum-tag' end end end end
- 配置完成后在项目根目录执行
pod install,重新生成Pods项目后重新编译即可消除所有相关警告。
后续gRPC官方修复头文件的规范问题后,你升级对应版本的依赖库即可移除上述配置,无需长期保留。
附警告截图参考:
内容的提问来源于stack exchange,提问作者atrdeveloper
相关产品推荐
相关产品推荐

