使用未解决的标识符' GMSServices'

时间:2015-11-23 02:30:58

标签: ios google-maps-sdk-ios

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

  1. $ sudo gem install cocoapods

  2. " AreaCalculator" $ touch Podfile

  3. Podfile中的
  4. 我把:

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '9.1'
    pod 'GoogleMaps'
    
  5. $ pod install

    在终端:

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

    [!]请关闭所有当前的Xcode会话,并从现在开始对此项目使用AreaCalculator.xcworkspace。 发送统计信息 Pod安装完成! Podfile有1个依赖项,总共1个 pod安装。

  6. 之后,我在导航器中选择了AreaCalculator文件夹 并选择File \ New \ File ...,然后选择iOS \ Source \ Objective-C 文件模板并创建了一个桥接文件:
    " AreaCalculator-桥接-Header.h"

    • " #import GoogleMaps / GoogleMaps.h
  7. 然后我添加" GoogleMaps.framework" in" Link Binary with Libraries"。 这两个" GoogleMaps.framwork"和#34;" GoogleMaps.bundle"在... Pods文件夹。

  8. 完成所有这些后,在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
        }
    }
    
  9. 然而,编译器向我显示错误"使用未解析的标识符' GMSServices' "

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

    谢谢!

3 个答案:

答案 0 :(得分:2)

对于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

答案 1 :(得分:1)

在AppDelegate.m中添加此行

#import "GoogleMaps/GoogleMaps.h"

答案 2 :(得分:1)

....
#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)
  }
}