使用未解析的标识符“GMSServices”
Posted
技术标签:
【中文标题】使用未解析的标识符“GMSServices”【英文标题】:Use of Unresolved Identifier 'GMSServices' 【发布时间】:2016-02-25 01:52:42 【问题描述】:我使用的是 Xcode 7.1,部署目标是 ios 9.1。该应用程序是“AreaCalculator”,它是用 Swift 编写的。我做了以下设置框架并导入地图:
$ sudo gem install cocoapods
在“AreaCalculator”下 $ touch Podfile
在我放的 Podfile 中:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.1'
pod 'GoogleMaps'
$ 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 个
吊舱已安装。
之后,我在导航器中选择了 AreaCalculator 文件夹 并选择 File\New\File...,然后选择 iOS\Source\Objective-C 文件模板并创建了一个桥接文件: “面积计算器-Bridging-Header.h”。
"#import GoogleMaps/GoogleMaps.h然后我在“Link Binary With Libraries”中添加“GoogleMaps.framework”。 “GoogleMaps.framwork”和“GoogleMaps.bundle”都在 Pods 文件夹。
完成所有这些之后,我在 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'”。
我不知道我哪里做错了?有人可以帮忙吗?
谢谢!
【问题讨论】:
【参考方案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
【讨论】:
以上是关于使用未解析的标识符“GMSServices”的主要内容,如果未能解决你的问题,请参考以下文章
使用未解析的标识符 'json' (Swift 3) (Alamofire)
出现错误:使用未解析的标识符“LinkingObjects”