2016-10-14 4 views
1

내 앱을 사용하는 사람들이 Sierra (MacOS 10.12)로 전환함에 따라 OS가 갑자기 연락처에 액세스 할 수있는 권한을 요청하고 있습니다. 왜 이렇게하는지 잘 모르겠습니다. 그것은 이전의 어떤 OS에서도 그것을하지 않습니다.Sierra가 연락처 (주소록) 권한을 요청하는 이유는 무엇입니까?

더 중요한 것은 앱이 연락처에 액세스하는 곳이 없습니다. 사실, ABAddresssBook 프레임 워크를 전혀로드하지 않습니다. 나는 아무런 결과가없는 주소와 연락처를 찾기 위해 소스를 검색했다. Xcode는 "기능"을 보여주지 않습니다. 내가 사용하고있는 유일한 타사 프레임 워크는 Sparkle입니다. (필자는 MacOS를 전혀 모르는 mp4v2 라이브러리를 정적으로 링크합니다.) 참고로,이 앱은 App Store가 아닌 서명 된 제 3 자로 배포됩니다. 그것은 임베디드 커맨드 라인 실행 파일 (예 : ffmpeg 등)을 가지고 있으며 OS X과 관련이 없습니다.

디버거를 사용하여 알림이 실행되는 것을 확인하려고했습니다. [ABAddressBook sharedAddressBook]을 가져 와서 사용자 요청을 실행하지만 누가 해당 블록을 시작했는지 표시하지 않는 블록을 실행하는 백그라운드 스레드를 보여줍니다.

어디에서 볼 것입니까?

여기 앱과 Sparkle에 대한 otool -L 라이브러리 목록이 있습니다.

<<App>>/Contents/MacOS/app 
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8) 
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0) 
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57740.1.18) 
/System/Library/Frameworks/QTKit.framework/Versions/A/QTKit (compatibility version 1.0.0, current version 1.0.0) 
/System/Library/Frameworks/Quartz.framework/Versions/A/Quartz (compatibility version 1.0.0, current version 1.0.0) 
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) 
/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 888.1.2) 
/System/Library/Frameworks/ScriptingBridge.framework/Versions/A/ScriptingBridge (compatibility version 1.0.0, current version 1.0.0) 
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 22.0.0) 
@rpath/Sparkle.framework/Versions/A/Sparkle (compatibility version 1.6.0, current version 1.11.0) 
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1349.0.0) 
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0) 
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1500.0.0) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1348.0.0) 
/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics (compatibility version 64.0.0, current version 1070.0.0) 
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 775.7.0) 
/System/Library/Frameworks/QuartzCore.framework/Versions/A/QuartzCore (compatibility version 1.2.0, current version 1.11.0) 

<<App>>//Contents/Frameworks/sparkle.framework/Sparkle: 
@rpath/Sparkle.framework/Versions/A/Sparkle (compatibility version 1.6.0, current version 1.11.0) 
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1391.12.0) 
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1229.0.0) 
/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0) 
/usr/lib/libbz2.1.0.dylib (compatibility version 1.0.0, current version 1.0.5) 
/usr/lib/libxar.1.dylib (compatibility version 1.0.0, current version 1.3.0) 
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5) 
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 57324.0.0) 
/System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration (compatibility version 1.0.0, current version 800.0.0) 
/System/Library/Frameworks/WebKit.framework/Versions/A/WebKit (compatibility version 1.0.0, current version 601.1.43) 
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1225.0.0) 
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 48.0.0) 
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1229.11.0) 
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 726.4.0) 

``코코아 벌목 로깅 워크 밝혀졌다

답변

1

. 이 메소드 중 하나는 모든 클래스가 로깅을 활성화했는지 여부를 확인하고 로깅 할 때 "class_getClassMethod"를 수행하도록 요청합니다. ABAddressBook에서이 작업을 수행하면 사용자 요청에 대한 액세스가 트리거됩니다.