Apple M1 Mac上.NET8 MAUI Blazor Hybrid iOS运行故障求助
.NET 8 MAUI Blazor Hybrid iOS 运行故障排查方案
环境信息
- 设备:Apple M1 Mac
- 系统:macOS Sonoma 14.6.1
- iOS SDK:17.5
- 项目:.NET 8 MAUI Blazor Hybrid
- 运行命令:
dotnet build -t:Run -f net8.0-ios - 对比:
dotnet build -t:Run -f net8.0-MacCatalyst运行正常
1. RootViewController为空崩溃问题
这是MAUI iOS初始化阶段的典型问题,按以下步骤修复:
- 检查
Platforms/iOS/AppDelegate.cs的FinishedLaunching方法,确保窗口和根视图控制器正确初始化:
public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.Init(); LoadApplication(new App()); Window = Window ?? new UIWindow(UIScreen.MainScreen.Bounds); Window.RootViewController = App.Current.MainPage.CreateViewController(); Window.MakeKeyAndVisible(); return base.FinishedLaunching(app, options); }
- 彻底清理项目:执行
dotnet clean,手动删除项目根目录下的bin和obj文件夹 - 重置iOS模拟器:打开模拟器后,选择
Hardware > Erase All Content and Settings,重启模拟器后再重新构建运行
2. CFBundleVersion无效错误
注意CFBundleVersionString已被废弃,需使用正确的键值对修改Platforms/iOS/Info.plist:
<key>CFBundleVersion</key> <string>1</string> <key>CFBundleShortVersionString</key> <string>1.0</string>
修改后执行:
dotnet clean清理缓存- 检查
obj/Debug/net8.0-ios/ios-arm64/目录下自动生成的Info.plist是否同步了修改,若未同步则手动替换或删除该目录后重建 - 重新运行
dotnet build -t:Run -f net8.0-ios
3. Socket连接IDE被拒绝错误
此问题属于调试器连接异常,可通过以下方式解决:
- 开启Mac远程登录:进入
系统设置 > 通用 > 共享,勾选远程登录选项 - 运行项目时指定调试地址:
dotnet build -t:Run -f net8.0-ios /p:DebuggerAddress=127.0.0.1 - 检查防火墙设置,确保dotnet进程和iOS模拟器的网络连接未被拦截
内容的提问来源于stack exchange,提问作者ShamilS
相关产品推荐
相关产品推荐

