Не удается получить доступ к платформе Google Map в файле Swift AppDelegate

#ios #google-maps #swift #google-maps-sdk-ios #xcode6

#iOS #google-карты #swift #google-maps-sdk-ios #xcode6

Вопрос:

Я изучаю Swift и изо всех сил пытаюсь понять, как интегрировать рамки SDK Google Map. Я создал новый проект в Xcode 6, импортировал необходимые фреймворки в соответствии с инструкциями Google Map SDK для iOS.

Однако, когда я импортирую платформу Google Maps с помощью (import) в файл AppDelegate.swift, платформа не распознается.

Нигде не удается найти решение. Пожалуйста, помогите.

Ответ №1:

После того, как вы импортировали Google Maps iOS SDK, вам необходимо определить заголовок моста, тогда SDK будет распознан.

Чтобы создать этот заголовок моста, добавьте произвольный файл Objective-C (например, .m файл) в свой проект. Xcode запросит вас, следует ли настроить заголовок моста для вас.

Нажмите Да, чтобы продолжить.

В -Bridging-Header.h ваш проект будет добавлен файл, заканчивающийся на .

Просто добавьте #import <GoogleMaps/GoogleMaps.h> заголовок моста, и все готово!

Кроме того, теперь безопасно удалить этот временный файл Objective-C.

Комментарии:

1. Большое вам спасибо, Аарон, это решило мою проблему. Похоже, что создание файла .m-файла просто для получения опции заголовка Bridging, возможно, это будет проще в релизной версии.

2. @Catalyea, я согласен. Я ожидал, что заголовок моста будет добавлен при импорте библиотеки Objecitve-C в проект. Надеюсь, это будет улучшено в следующем начальном этапе.

3. привет, не могли бы вы показать мне, как добавить ключ API в swift, пожалуйста? Спасибо. Из sdk Google Maps: developers.google.com/maps/documentation/ios/… Добавьте в свое приложение следующее:didFinishLaunchingWithOptions: метод, заменив API_KEY вашим ключом API. [GMSServices provideAPIKey:@»API_KEY»];

4. @Duc просто вызовите GMSServices.provideAPIKey свой ключ API в func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?)

5. Теперь с Xcode Beta 3 — это больше не работает! 🙁

Ответ №2:

Теперь вы можете установить SDK через CocoaPods, и вам не нужно добавлять заголовок Bridging. Просмотрите этот учебник (ссылка на Google Maps iOS SDK) и просто добавьте следующий код в функцию didFinichLaunchingWithOptions вашего AppDelegate.

 GMSServices.provideAPIKey("API_KEY")
  

Ответ №3:

Добавьте временный файл Objective-C в свой проект. Вы можете присвоить ему любое имя, которое вам нравится.

Выберите Да, чтобы настроить заголовок Objective-C.

Удалите временный файл Objective-C, который вы только что создали.

В только что созданном файле ProjectName-Bridging-Header.h добавьте эту строку:

‘#импорт < GoogleMaps/GoogleMaps.h >’

Отредактируйте файл AppDelegate.swift:

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    GMSServices.provideAPIKey("AIza....") //iOS API key

    return true
}
  

Перейдите по ссылке для получения полного примера