升级FirebaseFirestore至0.11.0后Xcode9.3报arm64符号未定义错误
我之前也碰到过类似的Firebase版本升级后的链接错误,这个问题本质是链接阶段找不到Invites相关的符号实现,大概率是版本不兼容或项目链接配置出了问题,给你几个可行的排查方向:
同步所有Firebase组件版本
Firebase的各个组件版本必须保持一致,不然很容易出现符号不匹配的情况。如果用CocoaPods管理依赖,检查你的Podfile,确保所有Firebase相关pod都指定为0.11.0版本:pod 'Firebase/Firestore', '0.11.0' pod 'Firebase/Invites', '0.11.0' # 其他Firebase组件也同步到相同版本执行
pod update后,用Cmd+Shift+K清理项目缓存,再重新构建试试。检查手动依赖的链接配置
如果是手动添加Firebase框架,确认FirebaseInvites.framework已经正确加入项目的Linked Frameworks and Libraries列表,并且这个框架的版本也是0.11.0,和Firestore完全匹配。验证项目架构设置
打开项目Build Settings,确认Architectures包含arm64,且Valid Architectures没有排除该架构。另外可以尝试把Build Active Architecture Only改成NO(Debug模式默认可能是YES),重新构建看是否能找到符号。清理Xcode缓存数据
Xcode的Derived Data经常会缓存旧的编译文件,导致版本升级后出现奇怪的链接错误。你可以通过Xcode -> Preferences -> Locations找到Derived Data的路径,删除对应项目的文件夹,重启Xcode后再重新构建。检查Firebase初始化逻辑
确保App启动时正确初始化了Firebase App,且Invites相关的初始化代码符合0.11.0版本的API要求,比如:[FIRApp configure];如果有用到Invites的接收逻辑,确认代码没有使用旧版本的废弃API。
要是以上步骤都没解决,建议完全移除所有Firebase相关依赖,再重新安装0.11.0版本的全套组件,确保所有库都是干净升级的状态。
内容的提问来源于stack exchange,提问作者user1988824

