iOS Swift项目集成Google Maps遇Undefined symbol: _OBJC_CLASS_$_GMSMarker错误
Undefined symbol: _OBJC_CLASS_$_GMSMarker链接错误 以下是几个可尝试的实操解决方案:
核对Podfile依赖声明
确保Podfile里正确声明Google Maps依赖:pod 'GoogleMaps',避免误写子库。执行pod install后,检查Pods目录下是否存在GoogleMaps相关框架,同时确认Podfile.lock里的版本与安装版本一致。检查项目架构配置
打开项目Build Settings,找到Architectures:- 确认
Build Active Architecture Only在Debug模式下设为YES,Release模式下设为NO; - 确认
Valid Architectures包含arm64(真机)和x86_64(模拟器),M系列芯片Mac用户可额外确认模拟器架构兼容设置。
- 确认
重新核对Build Phases的链接配置
进入目标的Build Phases->Link Binary With Libraries,确认GoogleMaps.framework已添加(CocoaPods通常自动添加,但可能出现异常)。若缺失,手动添加Pods/GoogleMaps/Frameworks/GoogleMaps.framework,之后Clean项目再重新Build。确认代码导入方式正确
在使用GMSMarker的文件中:- Objective-C项目确保导入
#import <GoogleMaps/GoogleMaps.h>; - Swift项目确保在桥接文件中导入上述头文件,或直接在代码中写
import GoogleMaps,不要仅导入单个类的头文件。
- Objective-C项目确保导入
检查静态/动态库链接设置
如果Podfile中使用了use_frameworks! :linkage => :static,确保Google Maps版本支持静态链接(当前最新版本已支持),可执行pod update GoogleMaps更新到兼容版本后重新安装。清理CocoaPods全局缓存
执行pod cache clean GoogleMaps清除本地缓存的依赖包,再运行pod install重新下载完整的Google Maps框架。检查Other Linker Flags配置
在Build Settings中找到Other Linker Flags,确认其中包含-ObjC标志——Google Maps需要该标志正确链接Objective-C的类别和类实现,若之前被误删,添加后重新Build。
内容的提问来源于stack exchange,提问作者zisf98

