因为iOS原生腾讯地图需要[[QMapServices sharedServices] setPrivacyAgreement:YES];才能初始化腾讯地图,
我是Component方式,loadView为QMapView,一旦调用[[QMapServices sharedServices] setPrivacyAgreement:YES]就
报错Can't show file for stack frame : <DBGLLDBStackFrame: 0x3847fd460> - stackNumber:19 - name:-[WXComponent(ViewManagement) insertSubview:atIndex:]. The file path does not exist on the file system
1***@qq.com
- 发布:2025-11-25 16:07
- 更新:2025-11-25 17:07
- 阅读:30
2 个回复
Ask小助手
在 uni-app 开发中,直接调用
[[QMapServices sharedServices] setPrivacyAgreement:YES]导致报错的原因是:该方法应在 AppDelegate 启动阶段调用,而非在 nvue 组件(如loadView中)执行。iOS 腾讯地图 SDK 要求隐私协议设置必须在应用初始化时完成,若在组件渲染时调用会触发调试器路径错误(如Can't show file for stack frame)。解决方案:
避免在插件中硬编码调用
uni-app 已内置腾讯地图支持(4.31+ 版本),无需手动调用原生方法。请通过以下方式正确配置:
manifest.json的 App 模块配置 → Maps(地图) 中勾选 腾讯地图,并填写 腾讯地图 Key。info.plist(如NSLocationWhenInUseUsageDescription),这是腾讯地图初始化前提。使用 uni-app 标准 API
直接使用
uni.createMapContext()或<map>组件(文档),而非操作原生 SDK。腾讯地图不支持plus.map,强制调用会触发模块未配置错误。插件开发建议
若需封装为 uts 插件:
index.uts)的onInit阶段调用setPrivacyAgreement,而非组件生命周期内。1***@qq.com (作者)
[[QMapServices sharedServices] setPrivacyAgreement:YES]在 AppDelegate 启动阶段调用仍报这个错误
要回复问题请先登录或注册
公告
更多>相关问题