uni-app uni.getLocation云打包后ios端获取不到定位信息

uni-app uni.getLocation云打包后ios端获取不到定位信息

项目信息 详情
产品分类 uniapp/App
PC开发环境 Mac
PC开发环境版本 10.15.7
HBuilderX类型 正式
HBuilderX版本 3.7.10
手机系统 iOS
手机系统版本 iOS 15
手机厂商 苹果
手机机型 iphone 11pro max
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

uni.getLocation({
type: "gcj02",
geocode: true,
isHighAccuracy: true,
success(res) {console.log('定位信息',res);},
fail(err) {console.log('定位失败',err)},

操作步骤:

云打包后,示例代码获取不到定位信息

预期结果:

云打包后,示例代码可以正常获取定位信息

实际结果:

云打包后,示例代码不能获取到定位信息

bug描述:

ios真机调试,可以获取到定位信息,云打包后,获取不到定位信息,success、fail方法都没走 报错信息如下:

{
"errMsg": "getLocation:fail Error Domain=PGLocation Code=2 \"不能获取到位置\" ,
UserInfo={NSLocalizedDescription=不能获取到位置},
https://ask.dcloud.net.cn/article/282",
"errCode": -1502,
"code": -1502
}


更多关于uni-app uni.getLocation云打包后ios端获取不到定位信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html

12 回复

manifest.json中配置定位sdk信息了么

更多关于uni-app uni.getLocation云打包后ios端获取不到定位信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html


配置了,高德定位,android定位没有问题,ios真机调试也能获取到定位,云打包后就获取不到了

回复 2***@qq.com: 日志正好是卡在uni.getLocation不往下走了么?我刚试了下,不过是百度的,ios没问题

回复 套马杆的套子: 发布后,看不到日志,真机调试没有问题

回复 2***@qq.com:你真机调试是自定义基座么? 发布可以toast试试

回复 套马杆的套子: 是自定义机座

回复 2***@qq.com: 怀疑还是ios的appkey有点问题

这个安卓和ios都可以,没有兼容问题

是,我们之前用都没有问题,最近更新了一下app,定位这边的代码一点都没有动,重新打包后,ios系统高德定位,ios上就获取不到位置信息了

回复 2***@qq.com: 我也遇到了,请问您解决了吗

回复 2***@qq.com: 解决了,高德的bundleid和包不一致

uni-app 中使用 uni.getLocation 获取定位信息时,如果云打包后 iOS 端无法获取到定位信息,可能是以下原因导致的。以下是一些常见的排查步骤和解决方案:


1. 检查权限配置

iOS 需要明确配置定位权限,确保在 manifest.json 中正确配置了以下权限:

{
  "app-plus": {
    "distribute": {
      "ios": {
        "permissions": {
          "NSLocationWhenInUseUsageDescription": "需要获取您的位置信息以提供更好的服务",
          "NSLocationAlwaysUsageDescription": "需要获取您的位置信息以提供更好的服务"
        }
      }
    }
  }
}

确保 NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUsageDescription 字段已正确配置,并且描述文案清晰。


2. 检查设备定位服务是否开启

确保 iOS 设备的定位服务已开启,并且当前应用被允许使用定位权限。可以在设备的 设置 > 隐私 > 定位服务 中检查。


3. 检查云打包配置

在云打包时,确保勾选了 定位 权限。在 HBuilderX 的云打包界面中,找到 iOS 权限配置,确保 定位 权限已开启。


4. 检查代码逻辑

确保 uni.getLocation 的调用方式正确。例如:

uni.getLocation({
  type: 'wgs84',
  success: function (res) {
    console.log('定位成功:', res);
  },
  fail: function (err) {
    console.error('定位失败:', err);
  }
});
回到顶部