如何将谷歌地图添加到ios6 sdk

时间:2013-03-24 20:17:09

标签: iphone ios6 google-maps-sdk-ios

当我尝试根据此链接Google MAP

将Google地图添加到ios6时

我得到API KEY并将其放入我的应用程序但它崩溃了,原因是“Google MAP SDK for ios必须通过[GMSServices ProvideAPIKey:...]初始化”

任何人都可以帮助我,给我视频如何做任何事情......

    #import "AppDelegate.h"
#import <GoogleMaps/GoogleMaps.h>
#import "ViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
[GMSServices provideAPIKey:@"AIzaSyBoOGGGQnvDydbKcxGeB1of6wu2ibE6Rjk"];

}

5 个答案:

答案 0 :(得分:8)

你做过step 8 here吗?

如果您这样做,是否可以使用application:didFinishLaunchingWithOptions:方法的代码更新您的问题?

<强>更新

[GMSServices provideAPIKey:]的调用移至application:didFinishLaunchingWithOptions:方法的最高位置,在此行之前的某处:

self.window.rootViewController = self.viewController;

此行设置根视图控制器,这将通过调用loadView来分配视图控制器的根视图。在Google的示例代码loadView中创建了GMSMapView,因此现在使用代码,您尝试在提供API密钥之前创建GMSMapView,这会导致Google Maps SDK for iOS崩溃。

顺便说一句,你在return语句之后调用了[GMSServices provideAPIKey:],所以它永远不会被调用。

答案 1 :(得分:0)

将您的GMSServices provideAPIKey移动到didFinishLaunchingWithOptions的顶部, 这将解决您的问题,因为您现在正在返回,然后再提供API密钥。

答案 2 :(得分:0)

如果你移动它仍然会出错,这就是我所做的:

将文件 GoogleMaps.bundle 文件复制到Xcode的框架文件夹中

“GoogleMaps.framework /版本/ A /资源/ GoogleMaps.bundle”

..并确保它位于“复制捆绑资源”下的“目标”(而不是“项目”)“构建阶段”设置中

答案 3 :(得分:0)

像这样开始你的代表而不是你的代表:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [GMSServices provideAPIKey:@"AIzaSyB2LJ2ppIVtkNh0lkG9J1tXW2RcHtI0FKY"];
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    //////

}

答案 4 :(得分:0)

我移动了这一行:

[GMSServices provideAPIKey:@"myAPIKey"];

在方法 viewDidLoad 中,现在可以正常工作。