Objective Sharpie 시작

Important

Objective Sharpie는 고급 지식 Objective-C (및 확장별 C)을 가진 숙련된 Xamarin 개발자를 위한 도구입니다. 라이브러리를 Objective-C 바인딩하기 전에 명령줄에서 네이티브 라이브러리를 빌드하는 방법에 대한 확실한 지식과 네이티브 라이브러리의 작동 방식을 잘 이해해야 합니다.

Objective Sharpie 설치

Objective Sharpie는 현재 Mac OS X 10.10 이상용 독립 실행형 명령줄 도구이며 완전히 지원되는 Xamarin 제품이 아닙니다. 타사 Objective-C 라이브러리에 바인딩 프로젝트를 만드는 데 도움을 주기 위해 고급 개발자만 사용해야 합니다.

Objective Sharpie는 표준 OS X 패키지 설치 관리자로 다운로드할 수 있습니다. 설치 관리자를 실행하고 설치 마법사의 모든 화면 프롬프트를 따릅니다.

명령을 sharpie update 사용하여 최신 버전으로 업데이트합니다.

기본 연습

Objective Sharpie는 타사 Objective-C 라이브러리를 C#에 바인딩하는 데 필요한 정의를 만드는 데 도움이 되는 Xamarin에서 제공하는 명령줄 도구입니다. Objective Sharpie를 사용하는 경우에도 개발자 Objective Sharpie가 완료된 후 생성된 파일을 수정하여 도구에서 자동으로 처리할 수 없는 문제를 해결해야 합니다.

가능한 경우 Objective Sharpie는 제대로 바인딩하는 방법에 대한 의문이 있는 API에 주석을 추가합니다(네이티브 코드의 많은 구문이 모호함). 이러한 주석은 특성으로 [Verify] 표시됩니다.

Objective Sharpie의 출력은 Xamarin 앱에서 사용할 수 있는 라이브러리로 컴파일되는 바인딩 프로젝트를 만드는 데 사용할 수 있는 파일 쌍입니다 StructsAndEnums.cs .ApiDefinition.cs

Important

Objective Sharpie는 적절한 사용을 위한 하나의 주요 규칙과 함께 제공됩니다. 적절한 구문 분석을 위해 올바른 clang 컴파일러 명령줄 인수를 반드시 전달해야 합니다. 이는 Objective Sharpie 구문 분석 단계가 clang libtooling API에 대해 구현된 도구이기 때문입니다.

즉, Objective Sharpie는 Clang(바인딩할 네이티브 라이브러리를 실제로 컴파일하는 C/Objective-C/C++ 컴파일러)와 바인딩을 위한 헤더 파일에 대한 모든 내부 지식을 가지고 있습니다. 구문 분석된 AST를 개체 코드로 변환하는 대신 Objective Sharpie는 AST를 C# 바인딩 "스캐폴드"로 변환하여 Xamarin btouch 바인딩 도구에 대한 입력 bmac 에 적합합니다.

구문 분석 중에 Objective Sharpie가 오류가 발생하면 AST를 생성하려고 하는 구문 분석 단계에서 clang가 오류 발생했음을 의미하며 그 이유를 파악해야 합니다.

새로운 기능! 버전 3.0 시도는 Xcode 프로젝트를 직접 지원하여 이러한 복잡성의 일부를 해결합니다. 네이티브 라이브러리에 유효한 Xcode 프로젝트가 있는 경우 Objective Sharpie는 지정된 대상 및 구성에 대한 프로젝트를 평가하여 필요한 입력 헤더 파일 및 컴파일러 플래그를 추론할 수 있습니다.

사용할 수 있는 Xcode 프로젝트가 없는 경우 올바른 입력 헤더 파일, 헤더 파일 검색 경로 및 기타 필요한 컴파일러 플래그를 추론하여 프로젝트에 대해 더 잘 알고 있어야 합니다. 네이티브 라이브러리를 빌드하는 데 사용되는 컴파일러 플래그가 Objective Sharpie에 전달되어야 하는 것과 동일하다는 것을 알아야 합니다. 이는 좀 더 수동적인 프로세스이며, Clang 도구 체인을 사용하여 명령줄에서 네이티브 코드를 컴파일하는 데 약간의 익숙해야 합니다.