MKLocalSearchCompleter选点启动MKLocalSearch触发SearchAttribution报错
iOS 地图搜索功能开发中MKLocalSearch调用触发搜索归属报错的问题
已实现的功能与运行环境
- 开发运行环境:Xcode 12.4、iOS 14.4 模拟器
- 功能实现链路:
- 通过
MKLocalSearchCompleter实现输入阶段的地点搜索补全能力,搭配表格视图展示返回的MKLocalSearchCompletion结果列表 - 预期业务逻辑:用户选中表格对应单元格时,基于选中的补全条目发起
MKLocalSearch请求以获取精确定位结果,最终将坐标回传至主页面
- 通过
- 核心实现代码片段:
// TableViewController 实例变量声明 var searchCompleter = MKLocalSearchCompleter() var searchResults = [MKLocalSearchCompletion]() // 搜索词变更时的补全配置逻辑 searchCompleter.queryFragment = text searchCompleter.resultTypes = .address searchCompleter.region = region // 表格视图选中行时的细化搜索逻辑 let selectedItem = searchResults[indexPath.row] let searchRequest = MKLocalSearch.Request() searchRequest.naturalLanguageQuery = selectedItem.title searchRequest.resultTypes = .address let search = MKLocalSearch(request: searchRequest) search.start { (response, error) in guard let coordinate = response?.mapItems[0].placemark.coordinate else { return } // 回传选中坐标至主控制器 self.delegate?.userSelectedPlace(coordinate: coordinate) }
实际异常表现
以用户选中“Los Angeles”搜索补全条目的操作场景为例,控制台抛出两类不触发崩溃的异常日志:
- 搜索归属模块输出日志:
[SearchAttribution] No matching attribution source found for org.volunteermatch ... (+4 other domains) - 地理服务归属信息加载报错:
Error Domain=GEOErrorDomain Code=-8 "No matching attribution source found for org.volunteermatch" UserInfo={NSDebugDescription=No matching attribution source found for org.volunteermatch} ... (+4 other domains)
- 补充调研情况:目前公开渠道可查询到的同场景复现案例极少,暂未定位到明确的问题触发原因。
内容的提问来源于stack exchange,提问作者wider-spider
相关产品推荐
相关产品推荐

