はじめに
こんにちは、@hiro128_777です。
この記事は「Xamarin Advent Calendar 2020」の13日目になります。
Apple M1 Mac が発売されて1ヶ月になりますね。というわけで、macOS Big Sur (Apple M1) 上の、Visual Studio for Mac で Xamarin がどれくらい使えるか再度確認してみました。
ちなみに、11/23 時点での状況こちらとなっております。
hiro128.hatenablog.jp
バージョン
- macOS Big Sur 11.0.1
- Visual Studio for Mac Version 8.8.3 (build 16)
- Xcode 12.2
Xcode は Universal App です。
Visual Studio はまだ Intel App で Rosetta2 を介しての動作となります。
Visual Studio for Mac のインストールと起動
インストールと起動は全く問題ありません。当該の Mac 上で、 なお、Rosetta 2 を利用するアプリの起動が初めての場合は、Rosetta 2 のインストールが走ります。
アプリごとの動作のまとめ
SDK 認識・コード編集 | エミュレーター デバッグ実行 |
実機 デバッグ実行 |
Xamarin Profiler エミュレーター |
Xamarin Profiler 実機 |
備考 | |
---|---|---|---|---|---|---|
iOS | ○ OK | ○ OK | ○ OK | ○ OK | ○ OK | |
Android | ○ OK | △ 一応動作 | ○ OK | ○ OK | ○ OK | エミュレーターはプレビュー版で動作 |
macOS | ○ OK | --------------- | ○ OK | --------------- | ○ OK | Intel App としてビルドされ、 Universal App としてビルドできない |
結論から言うと、発売直後の状況より改善があります。
以下詳細となります。
iOS アプリ
SDK 認識・コード編集
問題ありません。
ビルド・デバッグ実行(シミュレータ)
問題ありません。
ビルド・デバッグ実行(実機)
問題ありません。
11/23 時点では iOS で実機にデプロイ時にプロビジョニングプロファイルの設定が不完全な時、1度だけ Visual Studio for Mac がクラッシュする現象が発生しましたが、それが起こらなくなりました。ですが、たまたま起こらなかったのか改善されたのかは不明です。
Xamarin Profiler(シミュレータ)
問題ありません。
Xamarin Profiler(実機)
問題ありません。
Android アプリ
SDK 認識・コード編集
問題ありません。
ビルド・デバッグ実行(エミュレータ)
11/23 時点では、エミュレータが起動できず実行できませんでしたが、プレビューですが、Google からApple M1 で動作するエミュレーターがリリースされており、そちらででエミュレーター上のデバッグが可能となりました。
エミュレータは以下からダウンロードしてインストールできます。
github.com
起動すると、Visual Studio for Mac で認識します。
なお、プロジェクトオプションで「迅速なアセンブリの配置」を外さないと、デプロイでエラーが出ました。
プレビュー版で試したら発生しませんでしたので、以下の issue のようです。
github.com
ビルド・デバッグ実行(実機)
問題ありません。
Xamarin Profiler(シミュレータ)
問題ありません。
Xamarin Profiler(実機)
問題ありません。
mac アプリ
SDK 認識・コード編集
問題ありません。
ビルド・デバッグ実行(実機)
こちらは状況が変わらず、ビルド、デバッグ実行できますが、Universal App としてビルドさせる設定が見つからず、結果として、Intel App としてビルドされ、Universal App としてはビルドできません。
Xamarin Profiler(実機)
問題ありません。
まとめ
というわけで、再度の検証では、Apple M1 Mac 発売直後より状況が改善され、動くには動くという状況にはなりました。少なくとも実機での動作は問題なくなっていますので、実機デバッグのみで開発するのであれば問題ない感じです。エミュレーターも使う場合には、もう少し待てば、Android でも問題なく使えるようになりそうです。
なお、速度的には全く遅いとは感じませんでした。あとは、Visual Studio for Mac が M1 ネイティブで動くようになると嬉しいのですが、情報が全く無くどこまで開発が進んでいるのかもわかりません。Xamarin 後継の .NET MAUI は Visual Studio Code をサポートするとアナウンスされていますので、MAUI リリースまで Rosetta 2 で引っ張って、Visual Studio for Mac は廃止で Visual Studio Code に移行というような事態にならないかがとても心配です。
早く Visual Studio for Mac を M1 ネイティブ対応にしていただけると助かります。
今回は以上です。