2016-09-30 13 views
0

Итак, я работаю над проектом Xamarin для мобильных устройств, и я использую API EKEventStore для создания событий, и он отлично работает на iOS 8 и 9. Но что-то пошло не так, запрашивая доступ к EKEVentStore на iOS 10.Аварии запросов доступа EKEventStore на iOS 10

Приведенный ниже код отлично работает на iOS 8 и 9, но на iOS 10 он падает, и для этой ошибки не указывается конкретное сообщение.

Похоже, что Apple, изменилась что-то о сборе это разрешение в прошивке 10.

Кто-то этот же вопрос или что-то знает о том, что помогает решить ее?

Спасибо!

EKEntityType type = EKEntityType.Event; 
Store = new EKEventStore(); 
EKAuthorizationStatus status = EKEventStore.GetAuthorizationStatus(type); 

if (status != EKAuthorizationStatus.Authorized) 
{ 
    if (status == EKAuthorizationStatus.NotDetermined) 
    {  
     Store.RequestAccess(type, (bool granted, NSError error) => 
     { 
      //Crashes before entering here 
     }); 

     return; 
    } 
    else 
    { 
     //Denied 
     return; 
    } 
} 

Выход:

2016-09-30 17:16:25.739 MyApp[3156:115989] critical: Native stacktrace: 
2016-09-30 17:16:25.740 MyApp[3156:115989] critical: 0 libmonosgen-2.0.dylib    0x0524e64d mono_handle_native_sigsegv + 317 
2016-09-30 17:16:25.741 MyApp[3156:115989] critical: 1 libmonosgen-2.0.dylib    0x052a6321 sigabrt_signal_handler + 161 
2016-09-30 17:16:25.741 MyApp[3156:115989] critical: 2 libsystem_platform.dylib   0x07205ebb _sigtramp + 43 
2016-09-30 17:16:25.742 MyApp[3156:115989] critical: 3 ???         0xffffffff 0x0 + 4294967295 
2016-09-30 17:16:25.742 MyApp[3156:115989] critical: 4 libsystem_kernel.dylib    0x071e28bc abort_with_payload + 38 
2016-09-30 17:16:25.743 MyApp[3156:115989] critical: 5 TCC         0x003ab621 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 236 
2016-09-30 17:16:25.743 MyApp[3156:115989] critical: 6 TCC         0x003ab535 __CRASHING_DUE_TO_PRIVACY_VIOLATION__ + 0 
2016-09-30 17:16:25.743 MyApp[3156:115989] critical: 7 TCC         0x003ae6b9 __tccd_send_block_invoke + 292 
2016-09-30 17:16:25.744 MyApp[3156:115989] critical: 8 libxpc.dylib      0x0718c79c _xpc_connection_reply_callout + 45 
2016-09-30 17:16:25.745 MyApp[3156:115989] critical: 9 libxpc.dylib      0x07183a97 _xpc_connection_call_reply + 32 
2016-09-30 17:16:25.746 MyApp[3156:115989] critical: 10 libdispatch.dylib     0x06ea36ef _dispatch_client_callout + 14 
2016-09-30 17:16:25.746 MyApp[3156:115989] critical: 11 libdispatch.dylib     0x06e88c60 _dispatch_queue_override_invoke + 777 
2016-09-30 17:16:25.747 MyApp[3156:115989] critical: 12 libdispatch.dylib     0x06e8a4bc _dispatch_root_queue_drain + 384 
2016-09-30 17:16:25.748 MyApp[3156:115989] critical: 13 libdispatch.dylib     0x06e8a2d4 _dispatch_worker_thread3 + 134 
2016-09-30 17:16:25.748 MyApp[3156:115989] critical: 14 libsystem_pthread.dylib    0x07215d6e _pthread_wqthread + 1070 
2016-09-30 17:16:25.749 MyApp[3156:115989] critical: 15 libsystem_pthread.dylib    0x0721591a start_wqthread + 34 
2016-09-30 17:16:25.750 MyApp[3156:115989] critical: 
================================================================= 
Got a SIGABRT while executing native code. This usually indicates 
a fatal error in the mono runtime or one of the native libraries 
used by your application. 
================================================================= 

ответ

5

Для событий, вам нужно будет добавить соответствующий ключ в вашем info.plist, в этом случае будет NSCalendarsUsageDescription где значение краткое описание того, почему вы запрашивающий такое разрешение.
Надеюсь, что это решает вашу проблему, у меня была точно такая же проблема (также Xamarin), и это решило ее.

+0

Да, это решило проблему. Большое спасибо! –