Blazor Hybrid在mac上的调试
Blazor本质上是web,hybrid则是集成到其他应用里,比如我现在用的是Blazor + MAUI。
发现调试有时候比较尴尬,MAUI的部分并没有报错,build也成功了,但是在打开某一个blazor页面时崩了,提示有问题。可是visual studio里没有错误日志,app上也没有详细错误信息。
既然它是web,就可以用上浏览器的devtools来检查。我看有的人在windows上对着app直接用Ctrl+Shift+I直接调出了devtool。可是在mac上我试了不行,比如mac上edge调出devtool快捷键是Option+Command+I,但快捷键对blazor maui app无效。
后来尝试了几种方式,最终成功的是如下操作:
1. 确保MauiProgram.cs里有这几行
using Microsoft.Extensions.Logging;
#if DEBUG
builder.Services.AddBlazorWebViewDeveloperTools();
builder.Logging.AddDebug();
#endif
2. 新建一个文件,名为Entitlements.Debug.plist, 位于Platforms/MacCatalyst/下,内容为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>
3. 打开项目目录下的xxxx.csproj文件,添加一份PropertyGroup
<PropertyGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst' and '$(Configuration)' == 'Debug'">
<CodeSignEntitlements>Platforms/MacCatalyst/Entitlements.Debug.plist</CodeSignEntitlements>
</PropertyGroup>
4. 打开safari - Reference - Advanced,把最下面的'show develop menu in menu bar'勾选上。然后选择菜单Develop - {你的设备} - 0.0.0.0, 就能看到devtool了,blazor页面出错了后就能看到详细信息。如下图。
上一篇:
c#中的各种问号和点的用法