XPC 서비스가 별도의 대상이 아니지만 응용 프로그램에서 수신기 위임을 구현하는 내장 클래스입니다. 온라인에서 볼 수있는 모든 예제에는 xpc 서비스 도구를 만드는 별도의 대상이 있으며이를 지원하기 위해 응용 프로그램 자원 폴더에 복사합니다 들어오는 연결. 내가 원하는 것처럼 그것을 할 수있는 방법이 있습니까?Mac OSX에서의 XPC 구현
답변
아니요 .. 무뚝뚝하고 주말을 망쳐 버려서 죄송합니다.
YouApp.app
Contents
XPCServices/
SomeService.xpc
는 "XPC"확장자가 너희를 속이는하지 마십시오 즉 뭔가를 서비스로
XPC의 실행, 그것은 지적이야 있지만 "응용 프로그램"평신도 용어에 넣어.
"YouApp.app"이 실행되면 launchd (맥을 만드는 큰 아빠)에게 알림이 전송되고 조사가 시작됩니다.
launchd가 (libxpc)에 대해 매우 까다로운 이유는 낮은 수준에서 실행되어 잠재적으로 해를 끼칠 수 있기 때문입니다. 그러나 허용 수준에서 실행되기 때문에 그들은 매우 콧물이 나서 직업을 수행하기 때문에 효율적으로
초보자가 시작하기위한 좋은 예입니다
기본적으로 앱 1, 2 개 XPC 서비스가 있습니다.
다음과 같이 흐름은 간다 :
1) 앱은 앱이 인터넷 떨어져 뭔가를 다운로드 한 서비스를 요청 3) XPC 서비스를 실행할 수있는 권한을 부여 다른 것들) 사이에 (최대 2) launchd에를 발생하면 URL에 입력 할 수 있습니다 4) 서비스에서 다운로드하여 모든 서비스 (및 앱)에 액세스 할 수있는 장소에 저장합니다 (예 : 응용 프로그램 그룹). 5) 그런 다음 앱에서 다른 서비스에 "압축"하도록 요청합니다.
그게 전부입니다.
처음에 돌아 다니는 데 시간이 오래 걸리며 가장 실망스러운 것은 코드 서명입니다.
그냥 경고합니다. 이것을 잘 실행하려면, Xcode를 보내지 말고 터미널에서 코드화를 끝내십시오.
"눈을 뜨고 또 다른 것은"계획 "입니다. XPC 디버깅 설정이 올바르게 설정되어 있는지 확인하십시오. 또는 전혀 나타나지 않는 것처럼 보입니다.
마지막으로 Console은 친구입니다. D XPX를 디버깅 할 때 열어 두십시오.
- 1. Perl Mac OSX에서의 위치
- 2. Mac OSX에서의 사용 권한
- 3. Mac OSX에서의 Python EOF 오류
- 4. MAC OSX에서의 Python IPv6 멀티 캐스트 오류
- 5. OSX에서의 SDL + OpenGL : NSAutoreleaseNoPool()
- 6. 스레드와 XPC
- 7. Node.js Mac OSX에서의 설치 오류 : [Errno 13] 권한 거부 오류
- 8. OSX에서의 OpenGL Adobe 충돌
- 9. OSX에서의 SourceTree 파일 손상
- 10. OSX에서의 키보드 입력
- 11. XPC 서비스 및 AVFoundation
- 12. XPC 연결 인증
- 13. iOS8/iPhone6 + XPC 충돌
- 14. Windows 용 Mac 스페이스 구현
- 15. 블루투스 통신에서 XPC 충돌이 발생했습니다.
- 16. 다중 사용자 코어 데이터 XPC/w
- 17. OSX에서의 방역 문제 (Ruby Gem deprecated warnings)
- 18. Mac OSX에서의 Ruby 실행 2 개의 디렉토리 사이의 거대하고 기묘한 시간차
- 19. 다시 실행 바로 가기가 사라졌습니다 - OSX에서의 일식
- 20. OSX에서의 Python, 사이트 패키지 폴더에 관한 오류
- 21. OSX에서의 QT : 트레이 아이콘 - 아이콘 도크 문제
- 22. Eclipse OSX에서의 최신 Pydev 설치가 실패했습니다
- 23. OSX에서의 Qt 앤티 엘리 어싱 문제
- 24. NSBundle을 다시 구현 loadNibNamed : owner : options : Mac :
- 25. Mac 개발자 라이브러리에있는 메소드 구현 방법
- 26. 번들 XPC 도우미를 종료/재설정하는 방법은 무엇입니까?
- 27. XPC 서비스 내에서 FSEventStream을 사용할 수 없습니다.
- 28. XPC 및 교차 아키텍처 OSX 응용 프로그램
- 29. XCode 4에서 XPC 서비스를 어떻게 디버깅합니까?
- 30. 파인더 동기화 확장과 XPC 간 통신
XPC를 사용하는 요점은 기능에 제한된 코드로 별도의 바이너리를 작성하고 제한된 권한을 할당하고 프로세스 간 통신을 통해 서로 통신하는 것입니다. 단일 바이너리 내에서 XPC API를 사용할 수 있는지는 모르겠지만 응용 프로그램 구성 요소를 나눠서 사용하지 않는 한 XPC를 사용하지 않는 이유는 무엇입니까? – BergQuester
XPC는 별도의 프로세스를 처리하고 있습니다. 별도의 프로세스가 없다면 통신, 알림, 사용자 지정 대리인 등의 더 나은 방법이 있습니다. –
@BergQuester를 수정하기 만하면됩니다. XPC 서비스를 실행하는 기본 방법은 바이너리를 통해 이루어 지지만 라이브러리 등 여러 개를 포함 할 수 있습니다. 라이센스가 필요하지 않은 한 별도의 바이너리를 가질 필요가 없었던 시간의 99.9999 %. –