iOS Swift集成Google Places遇「Can't load search results」问题求助
我之前也碰到过这个一模一样的问题,折腾了好一阵子才解决!给你整理几个那两篇帖子里没提到的排查方向,说不定能帮你定位问题:
具体排查步骤
- 核对API密钥的细节:虽然你确认API已启用,但再去Google Cloud控制台检查这两点:
- 密钥的配额使用情况:Places API有每日请求限额,看看是不是当天的调用量已经耗尽了;
- 密钥的iOS Bundle ID绑定:有没有把你当前App的Bundle ID准确添加到密钥的允许列表里?哪怕多一个空格或者大小写不对,都会导致请求被拒绝。
- 检查网络与ATS配置:
- 试试切换不同的网络(WiFi/蜂窝数据),排除是网络环境的问题;
- 打开Info.plist,确认
NSAppTransportSecurity配置里没有限制*.googleapis.com的请求,ATS有时候会拦截未正确配置的HTTPS请求。
- 抓具体的错误日志:别只看App里的提示,在Xcode控制台里打印详细错误信息才是关键!在Autocomplete的代理方法里加这段代码:
func viewController(_ viewController: GMSAutocompleteViewController, didFailAutocompleteWithError error: Error) { let nsError = error as NSError print("Places错误详情:代码\(nsError.code),信息\(nsError.localizedDescription),域\(nsError.domain)") }
Google的错误码(比如OVER_QUERY_LIMIT、REQUEST_DENIED)能直接告诉你问题出在哪。
- 检查请求参数:最近有没有修改过AutoComplete的请求参数?比如
radius设置得过大、types参数值不符合要求,或者location的经纬度格式错误,都会导致返回空结果。 - 更新SDK版本:如果你的Google Places SDK版本比较旧,可能和最新的iOS系统不兼容。用CocoaPods或者Swift Package Manager更新到最新版本试试。
- 确认账单状态:Google Cloud如果账单逾期或者付款方式失效,哪怕之前API是正常的,也会突然被禁用。去Cloud控制台的账单页面看看有没有未处理的提醒。
内容的提问来源于stack exchange,提问作者Khushbu Desai
相关产品推荐
相关产品推荐

