我正在使用 JetBrains Rider 在 macOS Sonoma (14.6.1) 上进行 .NET MAUI 开发,因为 VS Code 对我来说已损坏。
我的目标是完成我一直在开发的多平台应用程序的 Mac 应用程序测试。它在 iOS 和 Android 模拟器/仿真器中成功构建和启动,并在我的测试 iPhone 和 Android 手机上运行。但是,它不会作为 Mac Catalyst 应用程序启动。每次我收到错误消息时,
Xamarin.Shared.targets(1834,3):
找不到应用程序的任何可用的配置文件。我已经完成了配置过程,删除并重新制作了开发人员仪表板中的证书、应用程序 ID 和配置文件。我为 macOS 制作了一款,为 iOS 制作了一款(也启用了 Mac)。我已经下载、安装、卸载、重新下载和安装。我不确定我错过了什么,.NET MAUI 的文档非常糟糕。很高兴在下面分享我的 csproj 代码以获得一些帮助并根据需要提供日志或屏幕截图。我检查了 Xcode,那里也有三个签名证书。
这是 CSProj 的相关部分:
<!-- Debug Configuration for iOS -->
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)' == 'Debug|net9.0-ios'">
<CodesignKey>key is here</CodesignKey>
<CodesignProvision>Automatic</CodesignProvision>
<BuildIpa>true</BuildIpa>
</PropertyGroup>
<!-- Release Configuration for iOS -->
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)' == 'Release|net9.0-ios'">
<CodesignKey>key is here</CodesignKey>
<CodesignProvision>Automatic</CodesignProvision>
<BuildIpa>true</BuildIpa>
</PropertyGroup>
<!-- Debug Configuration for Mac Catalyst -->
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)' == 'Debug|net9.0-maccatalyst'">
<CodesignKey>key is here</CodesignKey>
<CodesignProvision>Automatic</CodesignProvision>
</PropertyGroup>
<!-- Release Configuration for Mac Catalyst -->
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)' == 'Release|net9.0-maccatalyst'">
<CodesignKey>key is here</CodesignKey>
<CodesignProvision>Automatic</CodesignProvision>
</PropertyGroup>
又花了几个小时,我弄清楚了需要做什么才能让它启动并运行。对于那些需要实现此功能的人,我将在此处提到许多详细步骤,但实际上可以在文档中找到更多详细信息,尽管如果您像我一样对此类事情较新,您可能找不到以下措辞标题令人困惑:在此处输入链接描述
总结:
<!-- Release Configuration for Mac Catalyst -->
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<MtouchLink>SdkOnly</MtouchLink>
<EnableCodeSigning>True</EnableCodeSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Step 3 Goes Here</CodesignKey>
<CodesignProvision>ProvisioningProfileHere</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
<UseHardenedRuntime>true</UseHardenedRuntime>
</PropertyGroup>