2014-11-21 3 views
2
import UIKit 

@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate { 

    var window: UIWindow? 

    let googleMapsApiKey = "AIzaSyDc7eBtBwvAWucUaJcI6chyc9zNhbLQFao" 

    func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool { 



    GMSservices.provideAPIKey(googleMapsApiKey) 
    return true 
    } 

} 

У меня этот повторяющийся вопрос, где ошибка GMServices продолжает появляться, но у меня есть все соответствующие рамки и т.д. Любая помощь будет принята с благодарностью!Swift Использование неразрешенного идентификатора «GMServices»

ответ

2

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

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

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

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

Просто добавьте #import в заголовок моста, и вы готовы к работе!

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

Для получения дополнительной информации см по этой ссылке: http://dubinski.org/wpis/google-maps-sdk-with-swift-tutorial/

+0

Я следил за этими точными шагами, однако он по-прежнему не дает мне возможности создать файл заголовка. поэтому .. Я просто импортировал файл заголовка из аналогичного проекта, это хорошо? –

+0

, по моему мнению, вы должны создать новый файл с командой + n-> iOS source-> Header File и после этого импортировать #import в этот файл, который может работать. –

+1

нашел решение! В Xcode, если вы заходите в настройки сборки для своей цели и прокручиваете весь путь вниз, вы найдете раздел «Swift Compiler - Code Generation». Установите «Objective-C Bridging Header» на <#PROJECT_NAME> -Bridging-Header.h Спасибо в любом случае! –

1

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

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

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

В файле Projectname-Bridging-header.h только что создали, добавьте следующую строку:

'#import < GoogleMaps/GoogleMaps.h>'

Редактировать файл AppDelegate.swift:

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

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

    return true 
} 
1

Это случилось со мной совсем недавно, когда я обновил свои cocoapods. Теперь я вижу:

  • Using GoogleMaps (1.10.3)
  • COCOAPODS: 0.39.0

импорта в обводного заголовке, используется для работы.

Теперь, чтобы решить проблему, мне пришлось добавить import GoogleMaps в файл Swift с ошибкой.

+0

Спасибо! Ваш ответ действительно помог, просто добавив #import не работал – eilas

+0

@eilas, я рад, что это вам помогло. Удачи! – yoninja

Смежные вопросы