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

升级至iOS 17后Flutter中add_2_calendar插件无法添加日历事件求助

iOS 17下Flutter add_2_calendar插件添加日历事件失效问题

问题背景

升级iOS 17后,Flutter应用里用add_2_calendar插件添加日历事件的功能彻底失效,终端只输出错误信息:XPC connection was invalidated。

当前配置与尝试的操作

  • 原有Info.plist配置:
<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) 使用您的日历</string>
<key>NSContactsUsageDescription</key>
<string>$(PRODUCT_NAME) 使用您的日历</string>
  • 尝试添加iOS 17替代旧权限的描述,但问题未解决:
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
<string>添加赛事到日历</string>

Flutter代码示例

final Event calendarEvent = Event(
    title: '$homeTeamName vs $awayTeamName',
    description: '$leagueName ($round)\nReferee: $referee',
    location: stadium,
    startDate: matchTimestamp,
    endDate: matchTimestamp.add(const Duration(hours: 2)),
    iosParams: const IOSParams(
      reminder: Duration(hours: 1),
      url: 'https://hadjimamas.github.io/',
    ),
    androidParams: const AndroidParams(emailInvites: []),
  );

// 省略部分代码

InkWell(
    onTap: () {
        Add2Calendar.addEvent2Cal(calendarEvent);
    },
    // 省略其他UI属性
)

解决办法

1. 升级插件到最新版本

旧版add_2_calendar未适配iOS 17的日历权限逻辑,直接更新到最新稳定版(至少v1.1.0及以上),新版本已修复iOS 17兼容性问题。

2. 修正权限描述配置

iOS 17对日历权限做了细分,需同时保留读写权限和仅写权限的描述,内容要准确对应用途:

<key>NSCalendarsUsageDescription</key>
<string>需要访问日历以添加赛事提醒</string>
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
<string>需要写入权限以添加赛事到您的日历</string>

如果未用到通讯录功能,删除NSContactsUsageDescription,避免权限申请混淆用户。

3. 捕获插件调用的错误信息

addEvent2Cal方法返回Future<bool>,添加错误捕获可明确失败原因,同时给用户友好提示:

InkWell(
    onTap: () async {
        try {
            bool success = await Add2Calendar.addEvent2Cal(calendarEvent);
            if (!success) {
                // 提示用户检查日历权限
            }
        } catch (e) {
            print('添加日历事件失败:$e');
            // 给用户显示错误提示
        }
    },
)

4. 检查Xcode项目配置

打开Xcode项目,进入Info标签页确认权限描述无拼写错误;查看Signing & Capabilities,确保无权限相关配置缺失。

内容的提问来源于stack exchange,提问作者Andreas Hadjimamas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 11:43:13