2016-09-30 97 views
0

因此,我正在为移动设备开发Xamarin项目,并且正在使用EKEventStore API创建事件,并且它在iOS 8和9上正常工作。 但是出现了一些问题在iOS 10上请求EKEVentStore访问。iOS 10上的EKEventStore访问请求崩溃

下面的代码在iOS 8和9上正常工作,但在iOS 10上它崩溃并且没有针对此错误给出特定消息。

看来,苹果已经改变了一些关于iOS中收集了此权限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

是的,这解决了这个问题。非常感谢你! –