title: Google Maps SDK for iOS crashing on startup using Monotouch bindings
body: <p>I am trying to test out the new Google SDK for iOS using the <a href="https://github.com/mono/monotouch-bindings/tree/master/GoogleMaps/sample/GoogleMapsSample" rel="nofollow">GoogleMapsSample</a> on GitHub, however, every time I run the app crashes trying to create an instance of <code>GMSMapView</code>. This is happening when trying to run on both the simulator and the device.</p>
  
  <p>I have enabled the SDK from the developer console and updated the <code>GMSServices.ProvideAPIKey</code> call to use my iOS API key, from what I have read that is pretty much all that's required? </p>
  
  <p>I did notice this <a href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=4752" rel="nofollow">bug</a> which was logged against the actual SDK which mentions an issue relating to OpenGL so not sure if that's what the issue is here. However, as I can't get access to a log using the simulator I ran it on the device and checked the log out using XCode and the error does seem to relate to this - stack trace:</p>
  
  <pre><code>Incident Identifier: {Incident Id}
  CrashReporter Key:   {CrashReporter key}
  Hardware Model:      iPhone5,2
  Process:         GoogleMapsSample [6085]
  Path:            /var/mobile/Applications/{AppId}/GoogleMapsSample.app/GoogleMapsSample
  Identifier:      GoogleMapsSample
  Version:         ??? (???)
  Code Type:       ARM (Native)
  Parent Process:  launchd [1]
  
  Date/Time:       2013-02-27 18:28:21.300 +0000
  OS Version:      iOS 6.0.2 (10A551)
  Report Version:  104
  
  Exception Type:  EXC_BAD_ACCESS (SIGABRT)
  Exception Codes: KERN_INVALID_ADDRESS at 0x00000180
  Crashed Thread:  6
  
  Last Exception Backtrace:
  0   CoreFoundation                  0x372913e2 __exceptionPreprocess + 158
  1   libobjc.A.dylib                 0x33cc995e objc_exception_throw + 26
  2   CoreData                        0x32330828 +[NSEntityDescription entityForName:inManagedObjectContext:] + 100
  3   GoogleMapsSample                0x0010a3c6 -[GMSTileDataCache fetchTilesImmediateWithPredicate:sortDescriptor:completionHandler:] (GMSTileDataCache.mm:794)
  4   GoogleMapsSample                0x00106af0 __47-[GMSTileDataCache startWithCompletionHandler:]_block_invoke_0 (GMSTileDataCache.mm:170)
  5   libdispatch.dylib               0x3096478e _dispatch_call_block_and_release + 6
  6   libdispatch.dylib               0x30967b36 _dispatch_queue_drain + 138
  7   libdispatch.dylib               0x30965678 _dispatch_queue_invoke + 40
  8   libdispatch.dylib               0x3096860e _dispatch_root_queue_drain + 206
  9   libdispatch.dylib               0x309687d4 _dispatch_worker_thread2 + 88
  10  libsystem_c.dylib               0x3337f7ec _pthread_wqthread + 356
  11  libsystem_c.dylib               0x3337f680 start_wqthread + 4
  
  
  Thread 0 name:  Dispatch queue: com.apple.main-thread
  Thread 0:
  0   dyld                            0x2fe9bcf6 ImageLoaderMachOCompressed::trieWalk(unsigned char const*, unsigned char const*, char const*) + 42
  1   dyld                            0x2fe9be88 ImageLoaderMachOCompressed::findExportedSymbol(char const*, ImageLoader const**) const + 72
  2   dyld                            0x2fe96ca4 ImageLoaderMachO::findExportedSymbol(char const*, bool, ImageLoader const**) const + 28
  3   dyld                            0x2fe93592 ImageLoader::findExportedSymbolInDependentImagesExcept(char const*, ImageLoader const**, ImageLoader const**&amp;, ImageLoader const**, ImageLoader const**) const + 50
  4   dyld                            0x2fe936f0 ImageLoader::findExportedSymbolInImageOrDependentImages(char const*, ImageLoader::LinkContext const&amp;, ImageLoader const**) const + 64
  5   dyld                            0x2fe91d12 dlsym + 474
  6   libdyld.dylib                   0x37ad79c6 dlsym + 54
  7   libGFXShared.dylib              0x3362e5c4 gfxInitializeLibrary + 1256
  8   GLEngine                        0x379bce6a gliInitializeLibrary + 42
  9   OpenGLES                        0x36a9fa4e eagl_init + 418
  10  OpenGLES                        0x36a9f6a4 -[EAGLSharegroup initWithAPI:sharedWithCompute:] + 116
  11  OpenGLES                        0x36a9e45e -[EAGLContext initWithAPI:properties:] + 186
  12  OpenGLES                        0x36a9e2f2 -[EAGLContext initWithAPI:sharedWithCompute:] + 138
  13  GoogleMapsSample                0x00081ada -[GMSIOSGLContext initWithAPI:] (GMSIOSGLContext.mm:14)
  14  GoogleMapsSample                0x001275b6 gmscore::renderer::GMSIOSGLContextPool::GMSIOSGLContextPool() (GLContextPool.mm:108)
  15  GoogleMapsSample                0x0012733a __GetGLContextPool_block_invoke_0 (GLContextPool.mm:204)
  16  libdispatch.dylib               0x309645d8 _dispatch_client_callout + 20
  17  libdispatch.dylib               0x30965586 dispatch_once_f + 42
  18  GoogleMapsSample                0x001272da gmscore::renderer::GLContextPool::GetGLContextPool() (once.h:68)
  19  GoogleMapsSample                0x00142b60 -[GMSEntityRendererView initWithFrame:context:] (GMSEntityRendererView.mm:53)
  20  GoogleMapsSample                0x001562be -[GMSGestureHandlerView initWithFrame:context:gestures:] (GMSGestureHandlerView.mm:282)
  21  GoogleMapsSample                0x000fc6d6 -[GMSVectorMapView initWithFrame:connection:tileServiceRegistry:tileRequestCoordinator:serverControlledParameters:resourceManager:resources:networkMonitor:context:flags:locationPipeline:] (GMSVectorMapView.mm:245)
  22  GoogleMapsSample                0x00097bc6 -[GMSVectorMapViewBridge sharedInit:] (GMSVectorMapViewBridge.mm:108)
  23  GoogleMapsSample                0x000977f0 -[GMSVectorMapViewBridge initWithFrame:camera:] (GMSVectorMapViewBridge.mm:84)
  24  GoogleMapsSample                0x00080caa +[GMSMapView mapWithFrame:camera:] (GMSMapView.m:36)
  25  GoogleMapsSample                0x00183058 wrapper_managed_to_native_ApiDefinition_Messaging_IntPtr_objc_msgSend_RectangleF_GMSCamera_intptr_intptr_System_Drawing_RectangleF_GoogleMaps_GMSCamera + 456
  26  GoogleMapsSample                0x004ff57c GoogleMapsSample_MapViewController_LoadView (MapViewController.cs:21)
  27  GoogleMapsSample                0x00edae94 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 196
  28  GoogleMapsSample                0x018ebd84 mono_jit_runtime_invoke (mini.c:5783)
  29  GoogleMapsSample                0x0195b644 mono_runtime_invoke (object.c:2790)
  30  GoogleMapsSample                0x018d9816 native_to_managed_trampoline_GoogleMapsSample_MapViewController_LoadView (registrar.m:10129)
  31  UIKit                           0x3805d41c -[UIViewController loadViewIfRequired] + 64
  32  UIKit                           0x3809dd2c -[UIWindow addRootViewControllerViewIfPossible] + 60
  33  UIKit                           0x38099ac8 -[UIWindow _setHidden:forced:] + 360
  34  UIKit                           0x380db19c -[UIWindow makeKeyAndVisible] + 56
  35  GoogleMapsSample                0x01549600 wrapper_managed_to_native_MonoTouch_ObjCRuntime_Messaging_void_objc_msgSend_intptr_intptr + 64
  36  GoogleMapsSample                0x004ff22c GoogleMapsSample_AppDelegate_FinishedLaunching_MonoTouch_UIKit_UIApplication_MonoTouch_Foundation_NSDictionary (AppDelegate.cs:35)
  37  GoogleMapsSample                0x00edae94 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 196
  38  GoogleMapsSample                0x018ebd84 mono_jit_runtime_invoke (mini.c:5783)
  39  GoogleMapsSample                0x0195b644 mono_runtime_invoke (object.c:2790)
  40  GoogleMapsSample                0x018c9608 native_to_managed_trampoline_GoogleMapsSample_AppDelegate_FinishedLaunching (registrar.m:5515)
  41  UIKit                           0x3809ea74 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 248
  42  UIKit                           0x3809e5f8 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1164
  43  UIKit                           0x38096806 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 694
  44  UIKit                           0x3803ecea -[UIApplication handleEvent:withNewEvent:] + 1006
  45  UIKit                           0x3803e778 -[UIApplication sendEvent:] + 68
  46  UIKit                           0x3803e1ba _UIApplicationHandleEvent + 6194
  47  GraphicsServices                0x315235f4 _PurpleEventCallback + 588
  48  GraphicsServices                0x31523222 PurpleEventCallback + 30
  49  CoreFoundation                  0x372663e4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32
  50  CoreFoundation                  0x37266386 __CFRunLoopDoSource1 + 134
  51  CoreFoundation                  0x3726520a __CFRunLoopRun + 1378
  52  CoreFoundation                  0x371d8238 CFRunLoopRunSpecific + 352
  53  CoreFoundation                  0x371d80c4 CFRunLoopRunInMode + 100
  54  UIKit                           0x38095440 -[UIApplication _run] + 664
  55  UIKit                           0x3809228c UIApplicationMain + 1116
  56  GoogleMapsSample                0x01576fa8 wrapper_managed_to_native_MonoTouch_UIKit_UIApplication_UIApplicationMain_int_string___intptr_intptr + 236
  57  GoogleMapsSample                0x004fef5c GoogleMapsSample_Application_Main_string__ (Main.cs:17)
  58  GoogleMapsSample                0x00edae94 wrapper_runtime_invoke_object_runtime_invoke_dynamic_intptr_intptr_intptr_intptr + 196
  59  GoogleMapsSample                0x018ebd84 mono_jit_runtime_invoke (mini.c:5783)
  60  GoogleMapsSample                0x0195b644 mono_runtime_invoke (object.c:2790)
  61  GoogleMapsSample                0x0195e3aa mono_runtime_exec_main (object.c:3972)
  62  GoogleMapsSample                0x01961cce mono_runtime_run_main (object.c:3602)
  63  GoogleMapsSample                0x01905be6 mono_jit_exec (driver.c:1125)
  64  GoogleMapsSample                0x019ae5f4 main (main.m:445)
  65  GoogleMapsSample                0x0016d20c start + 36
  
  Thread 1 name:  Dispatch queue: com.apple.libdispatch-manager
  Thread 1:
  0   libsystem_kernel.dylib          0x378c25d0 kevent64 + 24
  1   libdispatch.dylib               0x30969d22 _dispatch_mgr_invoke + 806
  2   libdispatch.dylib               0x30965374 _dispatch_mgr_thread + 32
  
  Thread 2:
  0   libsystem_kernel.dylib          0x378d2d98 __workq_kernreturn + 8
  1   libsystem_c.dylib               0x3337fad6 _pthread_workq_return + 14
  2   libsystem_c.dylib               0x3337f7f2 _pthread_wqthread + 362
  3   libsystem_c.dylib               0x3337f680 start_wqthread + 4
  
  Thread 3:
  0   libsystem_kernel.dylib          0x378c1e80 semaphore_wait_trap + 8
  1   GoogleMapsSample                0x01900992 mono_sem_wait (mono-semaphore.c:115)
  2   GoogleMapsSample                0x019a0cea finalizer_thread (gc.c:1078)
  3   GoogleMapsSample                0x0198bff6 start_wrapper (threads.c:784)
  4   GoogleMapsSample                0x018f3942 thread_start_routine (wthreads.c:287)
  5   GoogleMapsSample                0x019392dc GC_start_routine (pthread_support.c:1468)
  6   libsystem_c.dylib               0x3338a0de _pthread_start + 306
  7   libsystem_c.dylib               0x33389fa4 thread_start + 4
  
  Thread 4 name:  WebThread
  Thread 4:
  0   libsystem_kernel.dylib          0x378c1e30 mach_msg_trap + 20
  1   libsystem_kernel.dylib          0x378c1fd0 mach_msg + 48
  2   CoreFoundation                  0x372662b6 __CFRunLoopServiceMachPort + 126
  3   CoreFoundation                  0x3726502c __CFRunLoopRun + 900
  4   CoreFoundation                  0x371d8238 CFRunLoopRunSpecific + 352
  5   CoreFoundation                  0x371d80c4 CFRunLoopRunInMode + 100
  6   WebCore                         0x38ef9a58 _ZL12RunWebThreadPv + 440
  7   libsystem_c.dylib               0x3338a0de _pthread_start + 306
  8   libsystem_c.dylib               0x33389fa4 thread_start + 4
  
  Thread 5:
  0   libsystem_kernel.dylib          0x378d2d98 __workq_kernreturn + 8
  1   libsystem_c.dylib               0x3337fad6 _pthread_workq_return + 14
  2   libsystem_c.dylib               0x3337f7f2 _pthread_wqthread + 362
  3   libsystem_c.dylib               0x3337f680 start_wqthread + 4
  
  Thread 6 name:  Dispatch queue: com.google.maps.TileDataCacheQueue
  Thread 6 Crashed:
  0   libsystem_kernel.dylib          0x378d2350 __pthread_kill + 8
  1   libsystem_c.dylib               0x333a7fb2 pthread_kill + 54
  2   libsystem_c.dylib               0x333e4366 abort + 90
  3   GoogleMapsSample                0x019330a4 mono_handle_native_sigsegv (mini-exceptions.c:2325)
  4   GoogleMapsSample                0x018ea55e mono_sigsegv_signal_handler (mini.c:5878)
  5   libsystem_c.dylib               0x333b1d38 _sigtramp + 40
  6   GoogleMapsSample                0x01994b34 mono_domain_get (domain.c:1818)
  7   GoogleMapsSample                0x0195b644 mono_runtime_invoke (object.c:2790)
  8   GoogleMapsSample                0x019c0058 monotouch_throw_monotouch_exception (monotouch-glue.m:1420)
  9   GoogleMapsSample                0x019c00e8 monotouch_exception_handler (monotouch-glue.m:1426)
  10  CoreFoundation                  0x372916cc __handleUncaughtException + 624
  11  libobjc.A.dylib                 0x33cc9a46 _ZL15_objc_terminatev + 126
  12  libc++abi.dylib                 0x361ee118 _ZL19safe_handler_callerPFvvE + 76
  13  libc++abi.dylib                 0x361ee1b0 std::terminate() + 16
  14  libc++abi.dylib                 0x361ef59a __cxa_throw + 118
  15  libobjc.A.dylib                 0x33cc999e objc_exception_throw + 90
  16  CoreData                        0x32330828 +[NSEntityDescription entityForName:inManagedObjectContext:] + 100
  17  GoogleMapsSample                0x0010a3c6 -[GMSTileDataCache fetchTilesImmediateWithPredicate:sortDescriptor:completionHandler:] (GMSTileDataCache.mm:794)
  18  GoogleMapsSample                0x00106af0 __47-[GMSTileDataCache startWithCompletionHandler:]_block_invoke_0 (GMSTileDataCache.mm:170)
  19  libdispatch.dylib               0x30964790 _dispatch_call_block_and_release + 8
  20  libdispatch.dylib               0x30967b36 _dispatch_queue_drain + 138
  21  libdispatch.dylib               0x30965678 _dispatch_queue_invoke + 40
  22  libdispatch.dylib               0x30968610 _dispatch_root_queue_drain + 208
  23  libdispatch.dylib               0x309687d4 _dispatch_worker_thread2 + 88
  24  libsystem_c.dylib               0x3337f7ee _pthread_wqthread + 358
  25  libsystem_c.dylib               0x3337f680 start_wqthread + 4
  
  Thread 6 crashed with ARM Thread State (32-bit):
      r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x3a484524
      r4: 0x00000006    r5: 0x0aa4c000      r6: 0x01a14b1e      r7: 0x0aa4af9c
      r8: 0x00000000    r9: 0x3a480898     r10: 0x01a14b44     r11: 0x05a9385c
      ip: 0x00000148    sp: 0x0aa4af90      lr: 0x333a7fb7      pc: 0x378d2350
    cpsr: 0x00000010
  </code></pre>
  
  <p>Version info:</p>
  
  <pre><code>Mono 2.10.11 (mono-2-10/2baeee2)
  GTK 2.24.14
  GTK# (2.12.0.0)
  Package version: 210110000
  Xcode 4.5.1 (1842)
  Build 4G1004
  Monotouch: 6.2.0.65
  </code></pre>
  
  <p>Any ideas?</p>