Flutter中google_maps_flutter在iOS端无法使用的问题求助
解决Google Maps SDK初始化异常问题
已经在XCode的AppDelegate.swift中添加以下代码:
import UIKit import Flutter import GoogleMaps @UIApplicationMain @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GMSServices.provideAPIKey("some-my-api-key-from-gcp") GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } }
同时已启用「Maps SDK for iOS」,但运行时仍抛出异常:
** Terminating app due to uncaught exception 'GMSServicesException', reason: 'Google Maps SDK for iOS must be initialized via [GMSServices provideAPIkey:...] prior to use'
相关版本:Flutter 3.32、iOS 16.2、google_maps_flutter ^2.2.3
可行解决方法:
调整初始化代码顺序
把GMSServices.provideAPIKey的调用移到super.application(...)之前,确保SDK在Flutter插件和父类逻辑初始化前完成配置:override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { GMSServices.provideAPIKey("your-real-api-key") let result = super.application(application, didFinishLaunchingWithOptions: launchOptions) GeneratedPluginRegistrant.register(with: self) return result }验证API密钥配置
去GCP控制台确认你的API密钥已启用「Maps SDK for iOS」,并且应用限制(比如Bundle ID)和当前项目的配置完全匹配,避免因密钥权限或限制导致初始化失败。清理缓存后重新构建
- 关闭Xcode,删除
~/Library/Developer/Xcode/DerivedData目录下对应项目的缓存文件夹 - 在Flutter项目根目录执行
flutter clean - 重新打开Xcode,执行
Product > Clean Build Folder,再重新编译运行
- 关闭Xcode,删除
检查依赖集成状态
确认Podfile中已正确引入GoogleMaps,并且执行过pod install完成依赖安装。google_maps_flutter插件通常会自动处理,但可以手动检查Podfile是否包含:pod 'GoogleMaps'
内容的提问来源于stack exchange,提问作者dontknowhy
相关产品推荐
相关产品推荐

