2014-11-21 15 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錯誤不斷出現,但我有所有相關的框架等任何幫助將不勝感激!快速使用未解析的標識符'GMServices'

回答

2

導入Google Maps iOS SDK後,您需要定義一個網橋頭部,然後才能識別SDK。

要創建此橋頭,請將一個任意的Objective-C文件(例如:.m文件)添加到您的項目中。 Xcode會提示您詢問是否爲您配置橋頭。

單擊是繼續。

以-Bridging-Header.h結尾的文件將被添加到您的項目中。

只需在橋頭添加#import,你就可以走了!

此外,現在可以安全地刪除臨時的Objective-C文件。

更多信息請參考以下鏈接:http://dubinski.org/wpis/google-maps-sdk-with-swift-tutorial/

+0

我遵循那些確切的步驟,但它仍然沒有給我創建頭文件的選項。所以..我只是從一個類似的項目中導入了一個頭文件,這樣好嗎? – 2014-11-21 07:53:01

+0

我認爲你應該使用command + n-> iOS source-> Header File創建一個新文件,並在那之後導入#import 到該文件中,這可能是有效的。 – 2014-11-21 07:57:11

+1

找到解決方案!在Xcode中,如果你進入你的目標的構建設置,並一直向下滾動,你會發現一個「Swift編譯器 - 代碼生成」部分。 將「Objective-C Bridging Header」設置爲<#PROJECT_NAME> --Bridging-Header.h 無論如何,謝謝! – 2014-11-21 07:57:47

1

添加一個臨時的Objective-C的文件到您的項目。你可以給它任何你喜歡的名字。

選擇是以配置Objective-C橋接頭。

刪除剛剛創建的臨時Objective-C文件。

在剛剛創建的項目名 - 橋接-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

這發生在我剛剛剛剛更新我的椰子樹時。現在我明白了:

  • Using GoogleMaps (1.10.3)
  • COCOAPODS: 0.39.0

在橋接報頭,使用的進口工作。

現在,要解決該問題,我不得不將import GoogleMaps添加到有錯誤的Swift文件。

+0

謝謝!你的回答確實有幫助,只是增加#import 不起作用 – eilas 2016-04-08 09:56:37

+0

@eilas,我很高興這對你有幫助。祝你好運! – yoninja 2016-04-09 17:34:05