Xamarin.Mac 拡張機能のサポート
Xamarin.Mac 2.10 では、次の複数の macOS 拡張機能ポイントに対するサポートが追加されました。
- Finder
- 共有
- 今日
制限事項と既知の問題
以下は、Xamarin.Mac で拡張機能を開発するときに発生する可能性のある制限と既知の問題です。
- 現在、Visual Studio for Mac ではデバッグのサポートはありません。 すべてのデバッグは、NSLog とコンソールを使用して行う必要があります。 詳細については、以下の「ヒント」のセクションを参照してください。
- 拡張機能はホスト アプリケーションに含める必要があり、一度実行するとシステムに登録されます。 その後、[システム環境設定] の [拡張機能] セクションでそれらを有効にする必要があります。
- 一部の拡張機能がクラッシュすると、ホスト アプリケーションが不安定になり、奇妙な動作が発生する可能性があります。 特に、通知センターの Finder と Today セクションが "詰まった" 状態になり、応答しなくなる可能性があります。 これは Xcode の拡張機能プロジェクトでも発生しており、現在のところ Xamarin.Mac とは無関係のようです。 多くの場合、これは、(コンソール経由で) システム ログに、繰り返しエラー メッセージが出力されることで確認できます (詳細については「ヒント」を参照)。 macOS を再起動すると、この問題が解決されるようです。
ヒント
Xamarin.Mac で拡張機能を使用する場合は、次のヒントが役立ちます。
Xamarin.Mac は現在、デバッグ拡張機能をサポートしていないため、デバッグ エクスペリエンスは主に実行と
printf
のようなステートメントに依存します。 ただし、拡張機能はサンドボックス プロセスで実行されるため、Console.WriteLine
は他の Xamarin.Mac アプリケーションのようには動作しません。NSLog
を直接呼び出すと、デバッグ メッセージがシステム ログに出力されます。キャッチされなかった例外があると拡張機能プロセスがクラッシュし、システム ログには少量の有益な情報しか提供されません。 再スローする前に、
NSLog
のtry/catch
(例外) ブロックで面倒なコードをラップすると便利な場合があります。システム ログには、コンソール アプリの [アプリケーション]>[ユーティリティ] からアクセスできます。
前述のように、拡張機能ホスト アプリケーションを実行すると、それがシステムに登録されます。 アプリケーション バンドルを削除すると、登録が解除されます。
アプリの拡張機能の "迷子" バージョンが登録されている場合は、
plugin kit -mv
のコマンドを使用してそれらを (削除できるように) 見つけます。
チュートリアル
開発者は Xamarin.iOS 拡張機能と同じ方法で Xamarin.Mac 拡張機能を作成して使用するため、詳細については、Microsoft の拡張機能の概要に関するドキュメントを参照してください。
まとめ
この記事では、Xamarin.Mac バージョン 2.10 (以降) アプリでの拡張機能の操作について簡単に説明しました。