如何正确提供GoogleMaps的api密钥?

问题描述

当前,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
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...