【问题标题】:Use of Unresolved Identifier 'GMSServices'使用未解析的标识符“GMSServices”
【发布时间】:2016-02-25 01:52:42
【问题描述】:

我使用的是 Xcode 7.1,部署目标是 iOS 9.1。该应用程序是“AreaCalculator”,它是用 Swift 编写的。我做了以下设置框架并导入地图:

  1. $ sudo gem install cocoapods

  2. 在“AreaCalculator”下 $ touch Podfile

  3. 在我放的 Podfile 中:

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '9.1'
    pod 'GoogleMaps'
    
  4. $ pod 安装

    在终端:

    [!] 无法加载插件 /Library/Ruby/Gems/2.0.0/gems/cocoapods-try-release-fix-0.1.2 的规范 更新本地规范存储库 分析依赖关系 下载依赖项 安装谷歌地图 (1.10.5) 生成 Pods 项目 整合客户项目

    [!] 从现在开始,请关闭所有当前 Xcode 会话并为此项目使用 AreaCalculator.xcworkspace。 发送统计数据 豆荚安装完成! Podfile 有 1 个依赖项,总共有 1 个 吊舱已安装。

  5. 之后,我在导航器中选择了 AreaCalculator 文件夹 并选择 File\New\File...,然后选择 iOS\Source\Objective-C 文件模板并创建了一个桥接文件:
    “面积计算器-Bridging-Header.h”。

    • "#import GoogleMaps/GoogleMaps.h
  6. 然后我在“Link Binary With Libraries”中添加“GoogleMaps.framework”。 “GoogleMaps.framwork”和“GoogleMaps.bundle”都在 Pods 文件夹。

  7. 完成所有这些之后,我在 AppDelegate.swift 中输入:

    import UIKit
    
    @UIApplicationMain
    class AppDelegate: UIResponder, UIApplicationDelegate {
    
        var window: UIWindow?
        let googleMapsApiKey = "MY_GOOGLE_IOS_API_KEY"
    
        func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
            // Override point for customization after application launch.
            GMSServices.provideAPIKey(googleMapsApiKey)
            return true
        }
    }
    

但是,编译器向我显示错误“使用未解析的标识符'GMSServices'”。

我不知道我哪里做错了?有人可以帮忙吗?

谢谢!

【问题讨论】:

    标签: ios google-maps-sdk-ios


    【解决方案1】:

    我已经通过 AppDelegate.swift 中的“import GoogleMaps”解决了这个问题。

    【讨论】:

    • 这对我有用。它应该被标记为已接受的答案。
    • 谢谢。我在将 Google Places 和 Google Places Picker 安装到我的项目中时遇到了同样的问题。我采取了前所未有的措施,通过他们的网站向 Google 团队发送反馈,以突出显示他们示例代码中缺失的行。
    • 谢谢。我必须使用 @import GoogleMaps; 因为我使用的是目标 C
    • 但我的说:没有这样的模块'GoogleMaps'
    【解决方案2】:

    在 AppDelegate.m 中添加这一行

    #import "GoogleMaps/GoogleMaps.h"
    

    【讨论】:

      【解决方案3】:

      对于 react native,请确保您从上面导入到 #if DEBUG 模式。

      Put librarries above #if DEBUG
      
      #import "AppDelegate.h"
      
      #import <React/RCTBridge.h>
      #import <React/RCTBundleURLProvider.h>
      #import <React/RCTRootView.h>
      #import "RNSplashScreen.h" // here
      #import <GoogleMaps/GoogleMaps.h>
      #if DEBUG
      #import <FlipperKit/FlipperClient.h>
      #import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
      #import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
      #import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
      #import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
      #import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>```
      
      Found here -> https://github.com/react-native-community/react-native-maps/issues/3453#issuecomment-665475820
      

      【讨论】:

        【解决方案4】:
        ....
        #add this line
        import GoogleMaps
        
        
        @UIApplicationMain
        @objc class AppDelegate: FlutterAppDelegate {
          override func application(
            _ application: UIApplication,
            didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
          ) -> Bool {
          GMSServices.provideAPIKey("YOUR-API-KEY")
            GeneratedPluginRegistrant.register(with: self)
            return super.application(application, didFinishLaunchingWithOptions: launchOptions)
          }
        }
        

        【讨论】:

          【解决方案5】:

          对于 react native 0.64.1

          在 AppDelegate.m 中添加这一行

          #import <GoogleMaps/GoogleMaps.h>
          

          上面

          #ifdef FB_SONARKIT_ENABLED
          

          例如:

          #import <React/RCTLinkingManager.h>
          #import "ReactNativeConfig.h"
          #import <GoogleMaps/GoogleMaps.h>
          
          #ifdef FB_SONARKIT_ENABLED
          #import <FlipperKit/FlipperClient.h>
          

          【讨论】:

            【解决方案6】:

            我在使用 Flutter 时遇到了这个问题,并通过将 import GoogleMaps 添加到位于 ios > Runner 中的 AppDelegate.swift 文件中解决了这个问题>

            它应该是这样的:

            import UIKit
            import Flutter
            import GoogleMaps
            

            【讨论】:

              猜你喜欢
              • 2021-06-09
              • 2018-03-12
              • 1970-01-01
              • 1970-01-01
              • 2016-07-17
              • 2016-04-29
              • 2017-02-27
              相关资源
              最近更新 更多