2013-08-14 2 views
1

1 시간 전까지 알지 못했지만 신청서에 (이전 주소록) 데이터가 ABAddressBook 클래스를 통해 액세스하려고 시도하면 사용자에게 메시지가 표시됩니다 iOS 응용 프로그램이 연락처 데이터에 액세스하려고 시도 할 때 확인을 묻는 것처럼 확인을 위해 그런 다음 보안 & 개인 정보 보호 기본 설정 창이 업데이트되고 응용 프로그램이 개인 정보 목록 아래에 표시됩니다. 차단 된 응용 프로그램과 연락처 데이터에 액세스하려고하면연락처 및 보안 및 개인 정보 보호

enter image description here

그래서, 당신은 엑스 코드 당신은 개인 정보를 확인할 수 있습니다 "주소록 액세스 경로 ...에서 실행에 대한 거부"와 같은 진술에 오류가 발생합니다 iOS의 ABAddressBookGetAuthorizationStatus() 상태 OS X에서 응용 프로그램에 개인 정보 사용 권한이 있는지 어떻게 알 수 있습니까?

답변이 있다면 Mac OS가 개인 정보 탭 아래에서 응용 프로그램 목록을 저장하는 위치가 궁금합니다. 사용자의 환경 설정 폴더를 확인했습니다. 하지만 파일이 보이지 않습니다.

도움 주셔서 감사합니다.

2013-08-14 21:47:59.796 AppName[5374:1803] Address book access is denied for executable at path: /Users/Jim/Library/Developer/Xcode/DerivedData/AppName-eymlymijdmbqaldaqcaecgdyroxa/Build/Products/Debug/AppName.app/Contents/MacOS/AppName 
(
    0 AddressBook       0x00007fff8a1232fc __ABIsAccessGranted_block_invoke_0 + 36 
    1 libdispatch.dylib     0x00007fff93f5b0b6 _dispatch_client_callout + 8 
    2 libdispatch.dylib     0x00007fff93f5b041 dispatch_once_f + 50 
    3 AddressBook       0x00007fff8a123258 ABIsAccessGranted + 40 
    4 AddressBook       0x00007fff8a12319e +[ABAddressBook sharedAddressBook] + 12 
    5 AppName        0x00000001000180e7 -[AppDelegate extractWorkAddresses] + 55 
    6 AppName        0x0000000100011a68 -[AppDelegate extractWork1Address:] + 72 
    7 AppKit        0x00007fff8c9f6989 -[NSApplication sendAction:to:from:] + 342 
    8 AppKit        0x00007fff8cb2c37c -[NSMenuItem _corePerformAction] + 406 
    9 AppKit        0x00007fff8cb2c06a -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] + 133 
    10 AppKit        0x00007fff8c81928f -[NSMenu _internalPerformActionForItemAtIndex:] + 36 
    11 AppKit        0x00007fff8c819117 -[NSCarbonMenuImpl _carbonCommandProcessEvent:handlerCallRef:] + 135 
    12 AppKit        0x00007fff8cb25175 NSSLMMenuEventHandler + 342 
    13 HIToolbox       0x00007fff8a84cd1a _ZL23DispatchEventToHandlersP14EventTargetRecP14OpaqueEventRefP14HandlerCallRec + 1206 
    14 HIToolbox       0x00007fff8a84c1e9 _ZL30SendEventToEventTargetInternalP14OpaqueEventRefP20OpaqueEventTargetRefP14HandlerCallRec + 410 
    15 HIToolbox       0x00007fff8a861fc9 SendEventToEventTarget + 40 
    16 HIToolbox       0x00007fff8a898ca9 _ZL18SendHICommandEventjPK9HICommandjjhPKvP20OpaqueEventTargetRefS5_PP14OpaqueEventRef + 443 
    17 HIToolbox       0x00007fff8a83da21 SendMenuCommandWithContextAndModifiers + 59 
    18 HIToolbox       0x00007fff8a83d9d3 SendMenuItemSelectedEvent + 254 
    19 HIToolbox       0x00007fff8a83d85f _ZL19FinishMenuSelectionP13SelectionDataP10MenuResultS2_ + 94 
    20 HIToolbox       0x00007fff8a8198bb _ZL14MenuSelectCoreP8MenuData5PointdjPP13OpaqueMenuRefPt + 605 
    21 HIToolbox       0x00007fff8a818ec8 _HandleMenuSelection2 + 565 
    22 AppKit        0x00007fff8c9e48f6 _NSHandleCarbonMenuEvent + 245 
    23 AppKit        0x00007fff8c906acf _DPSNextEvent + 2073 
    24 AppKit        0x00007fff8c905e22 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 
    25 AppKit        0x00007fff8c8fd1d3 -[NSApplication run] + 517 
    26 AppKit        0x00007fff8c8a1c06 NSApplicationMain + 869 
    27 AppName        0x0000000100002092 main + 34 
    28 AppName        0x0000000100002064 start + 52 
) 

답변

2

사용자 액세스 권한을 부여하는 경우, 응용 프로그램이 평소처럼 ABAddressBook에 액세스 할 수 있습니다 편집 한 // 다음은 응용 프로그램이 ABAddressBook *addressBook = [ABAddressBook sharedAddressBook];와 ABAddressBook에 액세스하려고 할 때 오류 출력이 표시됩니다 다음

// . 사용자가 액세스를 거부하면 ABAddressBookaddressBooksharedAddressBook 메서드는 nil을 반환합니다.


예외를 피할 방법이 없다고 생각합니다. (이는 문서가 말하는 것과 일치하지 않습니다). 따라서 sharedAddressBooktry catch 블록으로 가져오고 예외가 발생하는 경우 앱이 죽지 않도록 코드 섹션을 추가 할 수 있습니다.

+0

예. 고맙습니다. 그것은 아주 간단합니다. –

+0

죄송합니다. 나는 이것이 해결책이라고 생각했다. 그러나 나는 그것이 확실하지 않습니다. 방금 주소록 (ABAddressBook * addressBook = [ABAddressBook sharedAddressBook];)을 초기화하려고하면 오류가 발생합니다. 이 문서에는 "ABAddressBook의 고유 한 공유 인스턴스 또는 주소록 데이터베이스를 초기화 할 수없는 경우에는 nil"이라고 나와 있습니다. 나는 그것이 초기화 될 수 있는지 알아내는 방법을 모른다. 애플 개발자 포럼에서 1 년 된 비슷한 주제를 본다. –

+0

로그 또는 예외에서 오류가 발생 했습니까? – Wain

관련 문제