You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET MAUI FilePicker在macOS(Mac Catalyst)下抛出异常问题

.NET MAUI FilePicker在macOS Catalyst无法工作的解决方案

针对你遇到的FilePicker在Windows正常、macOS Catalyst失效的问题,以下是几个可行的排查和修复方向:

1. 手动指定macOS平台的文件UTI

默认的FilePickerFileType.Pdf在Mac Catalyst环境下可能没有正确映射到系统认可的PDF文件类型标识符(UTI)。可以通过自定义FilePickerFileType,明确指定macOS对应的UTI:

var result = await FilePicker.PickAsync(new PickOptions
{
    PickerTitle = "Carica il PDF del tuo documento",
    FileTypes = new FilePickerFileType(new Dictionary<DevicePlatform, IEnumerable<string>>
    {
        { DevicePlatform.macOS, new[] { "com.adobe.pdf" } }, // macOS标准PDF UTI
        { DevicePlatform.Windows, new[] { ".pdf" } } // Windows保留原格式
    })
});

if (result == null)
    return;

string PathFile = result.FullPath;

2. 确保在主线程调用FilePicker

Mac Catalyst要求所有UI相关操作必须在主线程执行,虽然MAUI通常会自动处理,但异步场景下可能出现线程上下文异常。可以将调用包裹在主线程执行方法中:

var result = await MainThread.InvokeOnMainThreadAsync(async () =>
{
    return await FilePicker.PickAsync(new PickOptions
    {
        PickerTitle = "Carica il PDF del tuo documento",
        FileTypes = FilePickerFileType.Pdf
    });
});

if (result == null)
    return;

string PathFile = result.FullPath;

3. 升级MAUI到最新稳定版本

部分旧版MAUI存在Mac Catalyst平台下FilePicker的已知bug,升级到官方最新稳定版可以修复这类兼容性问题。

补充说明

你提到下载和文件保存功能正常,确实可以排除大部分权限问题,但上述方案针对的是FilePicker在Catalyst平台的特定适配问题,建议依次尝试。

内容的提问来源于stack exchange,提问作者Gabriele Tedeschi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:35:05