Поделиться через


Начало работы с Objective Sharpie

Внимание

Objective Sharpie — это инструмент для опытных разработчиков Xamarin с расширенными знаниями Objective-C (и по расширению, C). Прежде чем пытаться привязать Objective-C библиотеку, необходимо иметь твердые знания о том, как создать собственную библиотеку в командной строке (и хорошо понять, как работает собственная библиотека).

Установка Objective Sharpie

Objective Sharpie в настоящее время является автономным средством командной строки для Mac OS X 10.10 и более поздней версии и не является полностью поддерживаемым продуктом Xamarin. Он должен использоваться только расширенными разработчиками для создания проекта привязки к сторонней Objective-C библиотеке.

Objective Sharpie можно скачать как стандартный установщик пакетов OS X. Запустите установщик и следуйте всем запросам на экране из мастера установки:

Совет

sharpie update Используйте команду для обновления до последней версии.

Базовое пошаговое руководство

Objective Sharpie — это средство командной строки, предоставляемое Xamarin, которое помогает создавать определения, необходимые для привязки сторонней Objective-C библиотеки к C#. Даже при использовании Objective Sharpie разработчику потребуется изменить созданные файлы после завершения Objective Sharpie, чтобы устранить любые проблемы, которые не могут быть автоматически обработаны средством.

Когда это возможно, Objective Sharpie будет аннотировать API, с которыми он имеет некоторые сомнения в том, как правильно привязать (многие конструкции в машинном коде неоднозначны). Эти заметки будут отображаться как [Verify] атрибуты.

Выходные данные Objective Sharpie — это пара файлов и ApiDefinition.csStructsAndEnums.cs — которые можно использовать для создания проекта привязки, который компилируется в библиотеку, которую можно использовать в приложениях Xamarin.

Внимание

Objective Sharpie поставляется с одним основным правилом для правильного использования: необходимо абсолютно передать его правильные аргументы командной строки компилятора clang, чтобы обеспечить правильный анализ. Это связано с тем, что этап синтаксического анализа Objective Sharpie — это просто инструмент , реализованный для API clang libtooling.

Это означает, что Objective Sharpie имеет полную мощность Clang (компилятор C/Objective-C/C++, который фактически компилирует собственную библиотеку, которую вы привязываете) и все его внутренние знания о файлах заголовков для привязки. Вместо преобразования синтаксического анализа AST в объектный код Objective Sharpie преобразует AST в привязку C#, подходящую для ввода в bmacbtouch средства привязки Xamarin.

Если objective Sharpie ошибок во время синтаксического анализа, это означает, что clang ошибся во время его этапа синтаксического анализа пытается создать AST, и вам нужно выяснить, почему.

Новая функция! Попытка версии 3.0 решить некоторые из этих сложностей путем поддержки проектов Xcode напрямую. Если у собственной библиотеки есть допустимый проект Xcode, Objective Sharpie может оценить проект для указанного целевого объекта и конфигурации, чтобы вывести необходимые входные файлы заголовков и флаги компилятора.

Если проект Xcode недоступен, вам потребуется более знакомы с проектом, указав правильные входные файлы заголовков, пути поиска файла заголовков и другие необходимые флаги компилятора. Важно понимать, что флаги компилятора, используемые для сборки собственной библиотеки, совпадают с тем, что необходимо передать в Objective Sharpie. Это более ручной процесс, и тот, который требует немного знакомства с компиляцией машинного кода в командной строке с цепочкой инструментов Clang.