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

iOS端Google Maps运行报kCLErrorDomain Code=1错误且地图不显示

错误诱因

kCLErrorDomain Code=1属于CoreLocation框架的权限错误,对应官方定义的kCLErrorDenied,也就是位置请求被拒绝,你的问题由以下几个原因共同导致:

  • 权限判断逻辑颠倒:viewDidLoad中判断系统位置服务启用就直接调用requestLocation(),但此时应用本身还没有拿到用户的位置授权,直接请求位置必然触发报错
  • 授权通过后没有发起位置请求:在locationManagerDidChangeAuthorization回调中,判断到授权状态为已授权时直接return,没有触发位置拉取,导致位置更新回调不执行,地图无法加载对应视角内容
  • 潜在配置缺失:Info.plist未添加位置权限对应的描述字段,导致授权请求直接被系统驳回;或是谷歌地图SDK的APIKey未正确配置,导致地图本身无法加载

修复方案

1. 修正权限判断逻辑

替换viewDidLoad中的逻辑,优先检查应用本身的授权状态,再决定是申请权限还是直接拉取位置:

override func viewDidLoad() {
    super.viewDidLoad()
    locationManager.delegate = self
    let currentAuthStatus = locationManager.authorizationStatus
    if currentAuthStatus == .authorizedWhenInUse || currentAuthStatus == .authorizedAlways {
        // 已获得授权,直接请求位置
        locationManager.requestLocation()
    } else {
        // 未授权,先申请权限
        locationManager.requestWhenInUseAuthorization()
    }
}

2. 补全授权回调逻辑

在授权状态变更回调中,拿到授权后立刻发起位置请求:

func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
    switch manager.authorizationStatus {
    case .authorizedAlways, .authorizedWhenInUse:
        // 授权通过,发起位置请求
        locationManager.requestLocation()
    case .denied:
        // 可选:新增提示引导用户到系统设置开启位置权限
        return
    case .restricted, .notDetermined:
        locationManager.requestWhenInUseAuthorization()
    default:
        locationManager.requestWhenInUseAuthorization()
    }
}

3. 校验项目配置

  • 打开项目的Info.plist,确认已经添加NSLocationWhenInUseUsageDescription字段,字段值填写申请位置权限的合理用途(比如"需要获取您的位置来展示当前位置地图")
  • 确认AppDelegate的didFinishLaunchingWithOptions方法中已经正确配置谷歌地图APIKey:GMSServices.provideAPIKey("你的谷歌地图iOS SDK密钥"),且该密钥已经在谷歌云控制台开启了Google Maps iOS SDK的使用权限

4. 模拟器配置校验

打开模拟器的「设置-隐私与安全性-定位服务」,找到你的应用,确认权限设置为「使用App期间允许」;也可以在Xcode顶部菜单栏选择「Debug - Simulate Location」给模拟器指定一个模拟位置,避免模拟器无默认位置的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:06:03