はじめに
こんにちは、@hiro128_777です。
ようやく、Apple M1 Mac が自宅に届きました。というわけで、早速 Apple M1 Mac で Visual Studio for Mac を一通り軽く試してみました。なお、まだ詳しい検証はできておりませんので、引き続き調査したいと思います。
Intel Mac の Big Sur 上の動作状況は以下をご覧ください。
hiro128.hatenablog.jp
バージョン
- macOS Big Sur 11.0.1
- Visual Studio for Mac Version 8.8.1 (build 37)
- Xcode 12.2
Xcode は Universal App です。
Visual Studio は Intel App で Rosetta2 を介しての動作となります。
Visual Studio for Mac のインストールと起動
インストールと起動は全く問題ありません。当該の Mac 上で、 なお、Rosetta 2 を利用するアプリの起動が初めての場合は、Rosetta 2 のインストールが走ります。
なお、Visual Studio for Mac Version 8.8 のリリースノートは以下をご参照ください。
docs.microsoft.com
アプリごとの動作のまとめ
SDK 認識・コード編集 | エミュレータ デバッグ実行 |
実機 デバッグ実行 |
備考 | |
---|---|---|---|---|
ASP.NET(.NET 5) | ○ OK | --------------- | × NG | Safari (Universal) 、 Chrome (Universal) ともに同じエラー |
iOS | ○ OK | ○ OK | ○ OK(若干不安定) | 実機でプロビジョニングプロファイルの設定が不完全な時、 1度 VS がクラッシュ |
Android | ○ OK | × NG | × NG | エミュレータが起動せず、実機も認識しない |
macOS | ○ OK | --------------- | ○ OK | Intel App としてビルドされ、Universal App としてビルドできない |
ASP.NET(.NET 5)
自分の環境では、Intel Mac 同様、ASP.NET で初回のみ開発証明書に関するダイアログが出ましたが、以下のように、画面表示の通り許可すれば、次回以降は聞かれなくなります。
上記は、微妙に発生条件が違いますが、以下の issue が相当しそうです。
docs.microsoft.com
ただし、対処後もデバッグ実行に失敗します。
下記のようなエラーメッセージが出ます。
------------------------------------------------------------------- You may only use the Microsoft .NET Core Debugger (vsdbg) with Visual Studio Code, Visual Studio or Visual Studio for Mac software to help you develop and test your applications. ------------------------------------------------------------------- Loaded '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.0/System.Private.CoreLib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled. Stack overflow. at System.Collections.HashHelpers.GetPrime(Int32) at System.Collections.Generic.Dictionary`2[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].Initialize(Int32) at System.Collections.Generic.Dictionary`2[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]]..ctor(Int32, System.Collections.Generic.IEqualityComparer`1<System.__Canon>) at System.AppContext.Setup(Char**, Char**, Int32)
iOS アプリ
SDK 認識・コード編集
問題ありません。
ビルド・デバッグ実行(シミュレータ)
問題ありません。
ビルド・デバッグ実行(実機)
問題ありません。
プロビジョニングプロファイルの設定が不完全な時、1度だけ Visual Studio がクラッシュしました。その後は、プロビジョニングプロファイルの設定が不完全であることを示すエラーが表示されました。
Android アプリ
SDK 認識・コード編集
問題ありません。
ビルド・デバッグ実行(エミュレータ)
エミュレータが起動できず、実行できません。
ビルド・デバッグ実行(実機)
実機を認識しませんでした。ただし、Intel Mac では、実機をきちんと認識しますので、Visual Studio for Mac 起因の問題ではない可能性もあります。
mac アプリ
SDK 認識・コード編集
問題ありません。
ビルド・デバッグ実行(実機)
ビルド、デバッグ実行できますが、Universal App としてビルドさせる設定が見つからず、結果として、Intel App としてビルドされ、Universal App としてはビルドできません。
まとめ
というわけで、軽く触った感じでは、Apple M1 Mac ではまだ問題が結構ありそうです。エラーの原因も詳しく調べられていないので、もう少し色々試してみたいと思います。
なお、速度的には特に遅いとは感じませんでした。Visual Studio for Mac が M1 ネイティブで動くようになるのが楽しみです。
また、M1 Mac 発売から1ヶ月後の 2020/12/13 時点での、調査結果は以下をご覧ください。
hiro128.hatenablog.jp
今回は以上です。