SwiftUI手动安装GoogleMaps SDK后出现编译链接错误求助
解决SwiftUI项目手动集成Google Maps SDK的编译问题
1. 补全缺失的x86_64架构
Google Maps iOS SDK官方手动安装包默认包含arm64(真机)和x86_64(模拟器)两种架构,若你的框架仅识别到arm64,大概率是包损坏或下载了不完整版本:
- 重新下载官方完整SDK包,解压后确认
GoogleMaps.framework、GoogleMapsBase.framework等核心文件均包含双架构 - 验证架构:打开终端进入框架目录,执行命令:
正常输出应同时显示lipo -info GoogleMaps.framework/GoogleMapsarm64和x86_64,若仅存在arm64则需重新下载。
2. 修复链接符号缺失问题
Undefined symbol: _OBJC_CLASS_$_GMSCameraPosition这类错误属于链接阶段未正确引入依赖,按以下步骤排查:
- 确认所有依赖框架已添加到项目:GoogleMaps、GoogleMapsBase、GoogleMapsCore,且在Xcode的
Target -> General -> Frameworks, Libraries, and Embedded Content中,将这些框架的Embed选项设为Embed & Sign - 检查
OTHER_LDFLAGS配置,确保添加以下参数:-ObjC -framework "GoogleMaps" -framework "GoogleMapsBase" -framework "GoogleMapsCore" - 清理编译缓存:按下
Cmd+Shift+K清理项目缓存,再按Cmd+Option+Shift+K清除Derived Data,之后重新编译项目
3. M系列Mac模拟器适配(可选)
若在M系列Mac上运行模拟器,需调整项目架构设置以兼容:
- 在Xcode的
Target -> Build Settings -> Architectures中,将Architectures设为Standard Architectures (arm64, x86_64) - 关闭
Build Active Architecture Only(Debug模式可保留开启,Release建议关闭)
内容的提问来源于stack exchange,提问作者MXNL
相关产品推荐
相关产品推荐

