Firebase最新版本更新问题求助(iOS、CocoaPods环境)
你遇到的这些编译报错,大概率是依赖兼容、缓存残留或者构建设置异常导致的,和leveldb确实有一定关联,下面给你梳理几个针对性的排查和解决步骤:
彻底清理缓存并重新安装Pods
旧的项目缓存或Pod缓存很容易引发依赖冲突,先执行以下命令彻底清理:pod deintegrate pod clean rm -rf ~/Library/Developer/Xcode/DerivedData pod install完成后重启Xcode再尝试编译。
检查Podfile的基础配置
确保你的Podfile指定了符合Firebase 4.8.0要求的最低iOS版本(Firebase 4.8.0最低支持iOS 8.0),同时开启框架支持:platform :ios, '8.0' use_frameworks! # Objective-C项目也建议添加,保障模块正常加载修改后重新执行
pod install。修正构建设置中的头文件搜索路径
进入项目Build Settings,找到Header Search Paths,确认:- 包含
$(inherited)(必须放在路径列表的最前面) - 添加
${PODS_ROOT}/Headers/Public和${PODS_ROOT}/Headers/Public/Firebase,并设置为recursive
同时检查
Framework Search Paths,确保包含$(inherited)和${PODS_ROOT}/Frameworks。- 包含
针对leveldb的兼容调整
Firebase Realtime Database依赖leveldb-library,Firebase 4.8.0默认引入的leveldb版本可能和Xcode 9.1的LLVM编译器存在兼容性问题。你可以在Podfile中强制指定一个更适配的版本:pod 'leveldb-library', '~> 1.18'这个版本在Xcode 9.x环境下稳定性更好,添加后重新执行
pod install。检查模块相关构建设置
在Build Settings中找到Enable Modules (C and Objective-C),确保设置为YES;同时检查Apple LLVM 9.0 - Language - Modules下的Module Cache Path保持默认,避免自定义路径引发的模块加载异常。
如果以上步骤都无效,作为最后备选,可以尝试更新Xcode到9.4版本(Xcode 9.1确实存在部分编译器兼容bug),不过如果必须停留在9.1,前面的leveldb版本指定应该能解决大部分问题。
内容的提问来源于stack exchange,提问作者Besfort Abazi

