MacOSと.Net MAUIでAndroid15をビルドする

MacOSと.Net MAUIでAndroid15をビルドする

MacOSと.Net MAUIでAndroid15をビルドする

.Net MAUIでアプリを作っている人は少数だと思うんですよね。。なのでこんな悩みをしている人は少ないかと思いますが、誰かの参考になれば。。

.Netと言えばWindowsでしたが、Visual Studio for Macがあったので、Macユーザーでも.Netの開発ができていました。
しかし、Visual Studio for Macは2024/8/31に廃止になり、VSCodeにextensionを導入する形での開発スタイルに。。。
これにより、今まではVisual Studioで一括管理できていたSDKなどが、個別管理になってしまいパスの通し直しなどが発生しました。

これから.Net MAUIの環境を構築する人には関係ないものですが、今までVisual Studioで構築していた人は新しくAndroid Studioをインストールし、SDKをインストールします。
ここで問題なのが、Visual StudioにおけるAndroidSDKの格納先は下記で、

$Home/Library/Developer/Xamarin/android-sdk-macosx/platforms
Android StudioのAndroidSDKの格納先は下記のため、格納場所が異なります。
$HOME/Library/Android/sdk
そのため、Android Studio経由でSDKをダウンロードをすると、Pathを更新しない限りはVSCodeでビルドしようとするとエラーになります。
ダウンロードが完了したら、下記コマンドを実行します。これでビルドする際に、Android StudioでダウンロードしたSDKを利用することができます。
Sudo dotnet build -t:InstallAndroidDependencies -f:net8.0-android -p:AndroidSdkDirectory="$HOME/Library/Android/sdk" -p:JavaSdkDirectory="/Library/Java/JavaVirtualMachines/microsoft-17.jdk” -p:AcceptAndroidSDKLicenses=True

基本的には上記のコマンド実行でビルドできるようになりますが、場合によってはMAUIのワークロードをダウンロードする必要があります。
なので、下記コマンドを実行します。(意外と忘れがち)

sudo dotnet workload install maui-android maui-ios
sudo dotnet workload install maui
それなりに時間がかかりますので、のんびり待機します。


リリースに失敗する

先ほどまでの対応をすることで、Android StudioでダウンロードしたSDKを使ってビルドし、エミュレーターなどで稼働確認を実施することができます。
しかし、リリース用のコマンドを実行すると、SDKのpathエラーが発生することがあります。
正直デバックビルドできているのに、リリースのビルドができないのは意味がわかりませんが、、、

エラー画面は、先ほどのパス設定のエラーメッセージが表示されますが、私の環境では実行しても改善されませんでした。
そのため力技で切り抜けました。。 その方法としては、リリースビルドの際に見ているpathに、Android StudioでダウンロードしたSDKをコピーします!
$HOME/Library/Android/sdk 配下にある、「android-35」を、/Users/hidayuuki/Library/Developer/Xamarin/android-sdk-macosx/platforms 配下にコピーします。

cd $HOME/Library/Android/sdk
cp -r android-35 $Home/Library/Developer/Xamarin/android-sdk-macosx/platforms
これで、pathに対象SDKがあることになるので、リリースのビルドが通るようになります。


最後に

今回は、MacOSで.Net MAUIのAndroid15をビルドするための方法を紹介しました。
とは言っても、対象は以前Visual Studio for Macを使っていた人に限定されますが、、

リリースに失敗する」で記載した不具合は、Visual Studioでビルドしたことがあったから、何かの設定が悪さしているんですかね。。?
かなり時間をかけて調べたのですが、有効的な方法は見つけれず、コピーするという力技で対応しました。
.Net MAUI自体がそもそも記事が少ないので、エラー解決には苦労します。。
一からVSCodeの環境を整備した人には影響ないんですかね?情報がないということはそういうことなのでしょう。。

.Net MAUIを使っている人がどれくらいいるのかわかりませんが、誰かの参考になれば幸いです。。
今回はこの辺で、ではまた!

コメント

このブログの人気の投稿

PowerAppsで座席表を作成する

Power Automateでファイル名から拡張子を取得

Power AutomateでTeamsのキーワードをトリガーにする