当我尝试根据此链接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"];
}
答案 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 中,现在可以正常工作。