2017-01-26 3 views
2

여기 내 오류 보고서의 일부입니다.iOS 크래시 : __CRASHING_DUE_TO_PRIVACY_VIOLATION__

#0. com.apple.contacts.store 
0 libsystem_kernel.dylib   0x18c34d1c4 semaphore_wait_trap + 8 
1 libdispatch.dylib    0x18c2387d8 _dispatch_semaphore_wait_slow + 216 
2 Contacts      0x195b99584 +[CNAuthorization requestAccessWithTimeout:entityType:] + 224 
3 Contacts      0x195b6288c -[CNiOSAddressBookDataMapper requestAccessForEntityType:error:] + 40 
4 Contacts      0x195b733fc -[CNDataMapperContactStore unifiedContactCountWithError:] + 60 
5 ContactsUI      0x196b7603c -[CNContactStoreSnapshot countOf_contacts] + 144 
6 ContactsUI      0x196b78820 -[CNContactStoreSnapshot prepareEnoughContacts] + 244 
7 libdispatch.dylib    0x18c2261bc _dispatch_client_callout + 16 
8 libdispatch.dylib    0x18c2337f0 _dispatch_barrier_sync_f_invoke + 84 
9 ContactsUI      0x196b7a9ec -[CNContactStoreDataSource _reloadSynchronously:] + 180 
10 ContactsUI      0x196b7af5c -[CNContactStoreDataSource currentSnapshot] + 64 
11 ContactsUI      0x196b79b80 -[CNContactStoreDataSource contacts] + 24 
12 ContactsUI      0x196b2045c -[CNContactListViewController _updateCountStringNow:] + 68 
13 ContactsUI      0x196b1f210 -[CNContactListViewController loadView] + 408 
14 UIKit       0x1932525bc -[UIViewController loadViewIfRequired] + 184 
15 UIKit       0x19330c2bc -[UINavigationController _layoutViewController:] + 72 
16 UIKit       0x19330c194 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 416 
17 UIKit       0x19330b4dc -[UINavigationController _startTransition:fromViewController:toViewController:] + 140 
18 UIKit       0x19330af28 -[UINavigationController _startDeferredTransitionIfNeeded:] + 856 
19 UIKit       0x19330aadc -[UINavigationController __viewWillLayoutSubviews] + 64 
20 UIKit       0x19330aa40 -[UILayoutContainerView layoutSubviews] + 188 
21 UIKit       0x1934e3fdc _runAfterCACommitDeferredBlocks + 292 
22 UIKit       0x1934d5d50 _cleanUpAfterCAFlushAndRunDeferredBlocks + 560 
23 UIKit       0x1932450b4 _afterCACommitHandler + 168 
24 CoreFoundation     0x18d34a0c0 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32 
25 CoreFoundation     0x18d347cf0 __CFRunLoopDoObservers + 372 
26 CoreFoundation     0x18d348180 __CFRunLoopRun + 1024 
27 CoreFoundation     0x18d2762b8 CFRunLoopRunSpecific + 444 
28 GraphicsServices    0x18ed2a198 GSEventRunModal + 180 
29 UIKit       0x1932bd7fc -[UIApplication _run] + 684 
30 UIKit       0x1932b8534 UIApplicationMain + 208 
31 MainApp      0x1001365e8 main (main.m:16) 
32 libdispatch.dylib    0x18c2595b8 (Missing) 

내 연구 후에 com.apple.contacts.store가 개인 정보 취급 방침으로 인해 충돌을 일으키는 것으로 보입니다. 문제는 연락처 저장소를 전혀 사용하지 않는 것입니다. 이것은 한 사용자에 대해서만 발생했습니다.

답변

12

당신이 dataDetectorTypesUITextView 활성화를 사용하는 경우, 사용자는 (시스템에서 제공) 상황에 맞는 메뉴에 전화 번호에 힘 프레스 터치 제스처를 통해 얻을 수 있습니다. 이 메뉴에서이 전화 번호로 새 연락처를 만들거나 전화 번호를 기존 연락처에 추가 할 수 있습니다 (스크린 샷 참조). 사용자가 "연락처에 추가"(Zu Kontakt hinzufügen)를 누르면 응용 프로그램이 주소록에 대한 액세스를 요청합니다. Info.plist에 NSContactsUsageDescription이 없다면 오류가 발생합니다.

enter image description here

+0

그게 내게 맞았다. 고마워. –

+0

환영합니다! 우리 앱에서 그 중 하나를 찾아내는 데 시간이 좀 걸렸으므로 공유할만한 가치가 있다고 생각했습니다. – plu

+0

굉장! 현재 사용자가 주소록에 대한 액세스를 거부 할 수있는 문제에 직면하고 있습니다.이 경우에도 주소록은 여전히 ​​충돌합니다. 어떤 아이디어? –

0

Apple의 ContactsUI 프레임 워크를 사용하고있는 것처럼 보입니다. 사용자의 권한을 요청하려면 info.plist에 NSContactsUsageDescription을 포함시켜야합니다. 개인 정보 보호 아래 여기에 더 많은 정보를 원하시면 : https://developer.apple.com/reference/contacts

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW14

+0

나는 그렇지 않습니다. 크래시 틱스가 엉망이 된 것 같아. – Weakman10122

+0

당신이 사용하고있는 또 다른 프레임 워크가 그것을 사용하고있을 수 있습니다. – karnett