import UIKit
import Flutter
import GoogleMaps
import flutter_local_notifications
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Todo: Add your API key here
GMSServices.provideAPIKey("XXXXXXXXXXXXXXXX")
FlutterLocalNotificationsPlugin.setPluginRegistrantCallback { (registry) in
GeneratedPluginRegistrant.register(with: registry)
}
if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as UNUserNotificationCenterDelegate
}
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
我正在制作一个 flutter 移动应用程序,上面是我的 ios/Runner/AppDelegate.swift 文件。 现在我需要提供 Gmap api 密钥,但来自另一个文件,该文件将被 .gitignored,因此我的 api 密钥不会在我的版本控制上发布。
我在 Android 上做了类似的事情,将密钥存储在以下位置: android/app/src/main/res/values/keys.xml
不存在将某些内容安全地存储在客户端应用程序上的情况。恶意用户始终可以反编译代码并检索您的 API 密钥。
相反,您可以尽最大努力在 Google Cloud Console 中使用此 Google Maps API 密钥,方法是将其限制为仅由具有您定义的应用程序 ID 的应用程序使用: API 安全最佳实践 - 设置应用程序限制API 密钥