问题描述
当前,AppDelegate调用一个静态方法,该方法为GMSServices提供API密钥。密钥正确,方法本身返回true。
GMSServices.provideAPIKey(ConfigUtils.GoogleMaps.Key)
尽管如此,当我尝试打开地图时,出现了错误
Exception NSException * "Google Maps SDK for iOS must be initialized via [GMSServices provideAPIKey:...] prior to use" 0x000060000383c8d0
发生在应用程序中。
要让GoogleMaps正常工作,我还需要做其他事情吗?
我在另一个问题中发现了这个问题:
如果您的某些Google Maps代码在API密钥初始化之前运行,则可能会发生这种情况。
但是在API密钥初始化之前没有任何Google Maps代码。
解决方法
使Google Maps API在您的应用中正常工作不需要任何其他操作。只要对您的API密钥的引用正确,那么可能是您在AppDelegate中错误的位置调用了provideAPIKey()
。
您确定要在AppDelegate内的正确函数中调用provideAPIKey()
吗?应该在didFinishLaunchingWithOptions
函数中调用它,就像这样。
func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// Provide the API Key to allow the app to use Google Maps here.
GMSServices.provideAPIKey(ConfigUtils.GoogleMaps.Key)
return true
}