【问题标题】:Unable to request authorization for local notifications on macOS无法为 macOS 上的本地通知请求授权
【发布时间】:2021-12-30 11:25:48
【问题描述】:

当使用以下方式请求本地通知授权时:

do {
    _ = try await current().requestAuthorization(options: [.alert])
} catch let error {
    print(error)
}

我总是收到错误消息:

Error Domain=UNErrorDomain Code=1 "Notifications are not allowed for this application" UserInfo={NSLocalizedDescription=Notifications are allowed for this application}

如果我去

系统偏好 > 通知和焦点 > 我的应用名称

我可以看到它们已被禁用,但我自己从未禁用它们,而且我找不到重置设置的方法。


使用 Swift、macOS 12 Monterey 和使用 async/await 的更新后的 UserNotifications API。

【问题讨论】:

    标签: swift macos notifications authorization unusernotificationcenter


    【解决方案1】:

    需要手动删除应用的所有痕迹,然后按照此处列出的所有步骤从头开始重试:

    • 如果已安装应用,请卸载(从Applications/ 删除)
    • 在 Xcode 项目 ⌘ ⇧ k 上清理构建
    • 删除任何派生数据[path to Xcode]/Xcode/DerivedData
    • 删除所有 Xcode 产品 [path to Xcode]/Xcode/Products
    • 删除所有存档[path to Xcode]/Xcode/Archives
    • 删除应用的容器~/Library/Containers/[my app name]
    • 清空垃圾桶
    • 在 finder 上进行搜索,确保您的应用程序不再有任何痕迹,在您的硬盘上搜索以下词:[my app name].app
    • 确保它不再出现在:系统偏好设置 > 通知和焦点 > [我的应用名称]
    • 重新启动计算机

    在所有这些请求授权的步骤都应该工作之后:

    do {
        _ = try await current().requestAuthorization(options: [.alert])
    } catch let error {
        print(error)
    }
    

    它只工作一次

    它只会在第一次工作,如果您不回复通知或不允许他们,您将需要重复所有步骤才能再次尝试。

    【讨论】:

      猜你喜欢
      • 2021-04-04
      • 2019-04-18
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 2014-12-01
      相关资源
      最近更新 更多