Objective Sharpie のツールとコマンド

Objective Sharpie に含まれるツールの概要と、それらで使うためのコマンド ライン引数。

Objective Sharpie が正常にインストールされたら、ターミナルを開き、Objective Sharpie で提供される "コマンド" について理解してください。

$ sharpie -help
usage: sharpie [OPTIONS] TOOL [TOOL_OPTIONS]

Options:
  -h, -help                Show detailed help
  -v, -version             Show version information

Telemetry Options:
  -tlm-about               Show a detailed overview of what usage and binding
                             information will be submitted to Xamarin by
                             default when using Objective Sharpie.
  -tlm-do-not-submit       Do not submit any usage or binding information to
                             Xamarin. Run 'sharpie -tml-about' for more
                             information.
  -tlm-do-not-identify     Do not submit Xamarin account information when
                             submitting usage or binding information to Xamarin
                             for analysis. Binding attempts and usage data will
                             be submitted anonymously if this option is
                             specified.

Available Tools:
  xcode              Get information about Xcode installations and available SDKs.
  pod                Create a Xamarin C# binding to Objective-C CocoaPods
  bind               Create a Xamarin C# binding to Objective-C APIs
  update             Update to the latest release of Objective Sharpie
  verify-docs        Show cross reference documentation for [Verify] attributes
  docs               Open the Objective Sharpie online documentation

Objective Sharpie には次のツールが用意されています。

ツール 説明
xcode Xcode の現在のインストールと、使用できる iOS と Mac の SDK のバージョンに関する情報を提供します。 後でバインドを生成するときにこの情報を使います。
pod マスター Spec リポジトリから入手できる Objective-CCocoaPod ライブラリの検索、構成、インストール、バインドを行います。 このツールは、インストールされている CocoaPod を評価し、次の bind ツールに渡す正しい入力を自動的に推測します。 3.0 での新機能です。
bind Objective-C ライブラリのヘッダー ファイル (*.h) を解析して、最初の ApiDefinition.cs と StructsAndEnums.cs ファイルを得ます。
update Objective Sharpie の新しいバージョンを調べて、ある場合はインストーラーをダウンロードして起動します。
verify-docs [Verify] 属性に関する詳細情報を表示します。
docs 既定の Web ブラウザーでこのドキュメントに移動します。

特定の Objective Sharpie ツールに関するヘルプを表示するには、ツールの名前と -help オプションを入力します。 たとえば、sharpie xcode -help は次の出力を返します。

$ sharpie xcode -help
usage: sharpie xcode [OPTIONS]

Options:
  -h, -help        Show detailed help
  -v, -verbose     Be verbose with output

Xcode Options:
  -sdks            List all available Xcode SDKs. Pass -verbose for more details.

バインド プロセスを始める前に、ターミナルで sharpie xcode -sdks コマンドを入力して、現在インストールされている SDK に関する情報を取得する必要があります。 出力は、インストールされている Xcode のバージョンによって異なる場合があります。 Objective Sharpie は、/Applications ディレクトリの下にあるすべての Xcode*.app でインストールされている SDK を検索します。

$ sharpie xcode -sdks
sdk: appletvos9.0    arch: arm64
sdk: iphoneos9.1     arch: arm64   armv7
sdk: iphoneos9.0     arch: arm64   armv7
sdk: iphoneos8.4     arch: arm64   armv7
sdk: macosx10.11     arch: x86_64  i386
sdk: macosx10.10     arch: x86_64  i386
sdk: watchos2.0      arch: armv7

上記からは、iphoneos9.1 SDK がコンピューターにインストールされており、arm64 アーキテクチャがサポートされていることがわかります。 このセクションのすべてのサンプルでこの値を使います。 この情報がわかっていると、Objective-C ライブラリ ヘッダー ファイルを解析して、バインド プロジェクト用の最初の ApiDefinition.csStructsAndEnums.cs を得られます。