Google 地图 iOS SDK:地图无法加载

6
我是iOS开发的新手,正在尝试使用Google Maps SDK创建一个简单的应用程序。我正在按照Google Maps入门指南中列出的步骤进行操作。
我看到了类似的问题:Google Maps iOS SDK集成不加载地图,其中问题在于bundle ID。我确保这对我不适用。
我已经花了3天时间从头开始尝试新应用程序。
  • I created a new api key, added my bundle ID.

  • I added API key:

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        GMSServices.provideAPIKey("MYKEY")
        return true
    }
    
  • Following is the ViewController.swift:

    import UIKit
    import GoogleMaps
    
    class ViewController: UIViewController {
    
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
            let mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera)
            view = mapView
    
            let marker = GMSMarker()
            marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20)
            marker.title = "Sydney"
            marker.snippet = "Australia"
            marker.map = mapView
        }
    
    }
    
我在模拟器和真实手机上运行了它。 我得到了标记和Google标志,但没有地图。有人可以给一些线索吗?

你是否已经下载了GoogleInfo.plist并将其添加到项目的目标中? - Aks
你的代码中有问题。一个是你正在设置地图的矩形,第二个是你必须将地图添加为子视图。你可以参考这个教程:https://www.raywenderlich.com/109888/google-maps-ios-sdk-tutorial - Waqas Sultan
谢谢你的指点 - 我没有添加 .plist 文件,我只是按照 Google 的入门指南操作。我会尝试你的建议并回来看看。 - kal
@Aks,我没有使用Firebase。我找不到如何获取Google Maps的GoogleService-Info.plist文件。 - kal
@Waqas,你发来的链接看起来很老,我在对象库中找不到MapViewController。我想这可能与API密钥有关,有没有办法在Google控制台中调试接收到的内容和错误信息? - kal
您将创建MapViewController。下载最终代码以获取更多详细信息。 - Waqas Sultan
2个回答

28

嗨,我找到了问题并解决了它。 问题出在 API 密钥上,而不是代码上。 在 IOS 应用程序之前,我尝试了一个简单的 Android 地图应用,并在同一控制台中创建了新的 API 密钥,但没有启用 IOS 的 Google 地图 API。

开发人员控制台以某种方式允许添加 IOS 限制到 API 密钥中,即使 IOS 的 SDK 没有启用,因此我从未想过需要做更多的事情。

如果您遇到此错误并已经验证了包标识符是正确的,请检查以下内容:

  • 转到 https://console.developers.google.com
  • 单击仪表板
  • 单击页面顶部带有 + 标记的“启用 API 和服务”。
  • 检查您是否已启用“Google Maps SDK for iOS”。如果没有,请启用它。
  • 重新运行应用程序,尽情享受 :)

- Kal


天啊,谢谢!我都快抓狂了。配置Google SDK真是太糟糕了!他们的文档里甚至都没有提到。 - Isuru
这在2019年末对我有效,我使用的是Maps SDK API Key而不是iOS key(由Google Service自动创建)。使用后者而不是前者使它对我起作用。 - iShaymus

2

在首次运行项目之前,请确保您生成正确的 API 密钥。我曾经遇到过类似的问题,并通过使用此链接生成并启用了 iOS 的正确 APIKey(而不是 JavaScript 或 Android)来解决它 - iOS 的 APIKey


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接