Swift 3 iOS -Google GMSAuto Полный сбой после обновления
Заголовок ошибки:
Я использую гугл GMSAutocompleteViewController
,
У меня есть мой API-ключ в AppDelegate, самый последний модуль для Swift 3 Xcode 8, импорт GoogleMaps и импорт GooglePlacesAPI находятся в верхней части vc и в appDelegate, и мое интернет-соединение в порядке.
Когда я использовал Swift 2.2, когда набирал адрес, все работало нормально. Теперь, когда я обновляюсь до Swift 3 время от времени, я делаю ошибку в адресе, затем появляется облачная надпись "Не удается загрузить результаты поиска". Когда я закрываю VC и пытаюсь снова, я продолжаю получать ту же подпись. Я попытался закрыть приложение и перезапустить симулятор, но он не дал мне доступ к службам автозаполнения. Я нахожусь под 2500 свободными ежедневными поисковыми лимитами, потому что это буквально только я тестирую приложение.
Я также заметил, что в документах Google AutoComplete говорится, что нужно использовать GMSPlacesClient.provideAPIKey("..."), но метод GMSPlacesClient provideAPIKey недоступен, поэтому я использую только GMSServices.provideAPIKey(".."). Интересно, это часть вопроса.
Кто-нибудь знает решение этой проблемы?
AppDelegate:
import UIKit
import GoogleMaps
import GooglePlacesAPI
import SystemConfiguration
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
override init() {
super.init()
//Google Maps API Key
GMSServices.provideAPIKey("WORKS")
GMSPlacesClient.provideAPIKey("DOES NOT WORK")
}
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
мой код из GooglePlaces:
import UIKit
import GooglePlaces
import GoogleMaps
class ViewController: UIViewController {
@IBAction func onLaunchClicked(sender: UIButton) {
let acController = GMSAutocompleteViewController()
acController.delegate = self
present(acController, animated: true, completion: nil)
}
}
extension ViewController: GMSAutocompleteViewControllerDelegate {
func viewController(_ viewController: GMSAutocompleteViewController, didAutocompleteWith place: GMSPlace) {
print("Place name: \(place.name)")
print("Place address: \(place.formattedAddress)")
print("Place attributions: \(place.attributions)")
dismiss(animated: true, completion: nil)
}
func viewController(_ viewController: GMSAutocompleteViewController, didFailAutocompleteWithError error: Error) {
print(".....\(error)")
dismiss(animated: true, completion: nil)
}
func wasCancelled(_ viewController: GMSAutocompleteViewController) {
dismiss(animated: true, completion: nil)
}
}
1 ответ
Вы должны положить GooglePlaces
, GooglePlacePicker
а также GoogleMaps
в ваш Podfile
:
pod 'GooglePlaces'
pod 'GooglePlacePicker'
pod 'GoogleMaps'
И предоставить ваш API_KEY
:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
GMSPlacesClient.provideAPIKey("API_KEY_HERE")
return true
}
Для получения дополнительной информации следуйте этому руководству: https://developers.google.com/places/ios-api/start