You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 MacBook 出现 _OBJC_CLASS_$ 错误(关联Google Maps/Places)

解决Google Maps/Places Swift Package集成的_OBJC_CLASS_$编译错误
  • 检查Swift Package的目标关联
    确认Google Maps和Places的Package已添加到项目的Package Dependencies中,并且在对应目标的Frameworks, Libraries, and Embedded Content列表里,这两个库的状态是Embed & Sign。很多时候添加Package后会忘记关联到具体目标,导致编译时找不到类。

  • 彻底清理构建缓存
    缓存残留是这类问题的常见诱因,按以下步骤操作:

    1. 关闭Xcode
    2. 删除项目的派生数据(可通过Xcode偏好设置→Locations找到路径)
    3. 终端执行命令清理Swift Package缓存:
      rm -rf ~/Library/Caches/org.swift.swiftpm
      rm -rf ~/Library/Developer/Xcode/DerivedData
      
    4. 重新打开项目,按下Cmd+Shift+K清理构建文件夹,再重新编译
  • 检查Objective-C桥接配置(若涉及OC代码)
    如果项目包含Objective-C代码,确认桥接文件中是否正确引入了头文件:

    #import <GoogleMaps/GoogleMaps.h>
    #import <GooglePlaces/GooglePlaces.h>
    

    同时检查Build Settings里的Objective-C Bridging Header路径是否准确无误。

  • 排查CocoaPods残留配置
    即使移除了CocoaPods,仍可能有残留配置干扰:

    • 搜索Build Settings中的Other Linker Flags,删除任何残留的-lGoogleMaps、-lGooglePlaces类参数
    • 删除项目目录下的.xcworkspace文件,直接打开.xcodeproj编译
    • 检查Info.plist中是否有Google Maps相关配置(比如API_KEY),确保配置正确(虽不直接导致类找不到,但可排除关联问题)
  • 验证Package版本兼容性
    确认你使用的Google Maps/Places Swift Package版本与当前Xcode版本、iOS目标版本兼容。比如部分新版本要求Xcode 14及以上,若你的Xcode版本过低,可能引发编译异常。建议切换到官方标注的稳定版本(如Google Maps 5.x系列)。

  • 复查架构设置细节
    再核对几个关键架构配置:

    • 目标的Architectures设为Standard Architectures (arm64, x86_64)
    • Excluded Architectures在Debug和Release下,不要排除arm64(M1设备需保留该架构)
    • Build Active Architecture Only在Debug模式设为YES,Release模式设为NO
  • 排查间接依赖冲突
    项目中其他Swift Package可能间接依赖了旧版Google Maps,引发冲突。可通过File → Packages → Resolve Package Versions更新所有依赖,或查看Package依赖图谱,确认是否有第三方库引入了冲突版本的Google Maps。

内容的提问来源于stack exchange,提问作者Senator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 18:42:28