我正在构建一个iOS应用程序,在iOS日历中创建编程事件. 我的代码在任何iOS模拟器中运行时都能完美运行.但当安装在任何物理设备上时,它根本不会.我做错了什么?

当调用questAccess()函数时,无论是在onspecar方法上,还是在按钮内部,它都不起作用.这似乎是一个身份验证问题,但没有理由它在模拟器中工作而不是在物理设备中工作.

有没有人面临过同样的问题? 有什么 idea 吗?还是推荐信?

import Foundation
import EventKit

class EventModel {
    
    let eventStore  = EKEventStore()
    let todayDate : Date = Date()
    
    func requestAccess() {
        let status = EKEventStore.authorizationStatus(for: .event)
        if status == .authorized {
            print("Access is already granted.")
        } else {
            print(status.rawValue)
            eventStore.requestFullAccessToEvents { success, error in
                if success && error == nil {
                    print("Access has been granted.")
                } else {
                    print(error)
                    print("Access request failed with error: \(error?.localizedDescription ?? "Unknown error")")
                }
            }
        }
    }
    
    //more code and other stuff

    }

推荐答案

我能够在我们的应用程序中解决同样的问题--对我们来说,原因是我们没有更新我们的info.plist.

我们需要为iOS 17中的新日历权限添加条目.根据您的特定情况,您需要添加以下一项/两项:

<key>NSCalendarsFullAccessUsageDescription</key>
<string>YOUR DESCRIPTION</string>
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
<string>YOUR DESCRIPTION</string>

请注意,您可能还需要保留旧的NSCalendarsUsageDescription条目,以便在旧版本的iOS上仍然有效.

希望这个能帮上忙!

Ios相关问答推荐

iOS SwiftUI需要不带箭头显示弹出窗口""

RxSwift:如何使用另外两个可观测对象(其中一个依赖于另一个)创建可观测对象?

无法关闭包含字体 Select 器的工作表

快速 keys 串更新只有在第二次try 时才起作用

iOS设备网页自动化中,在向字段发送文本后未启用按钮

在 Swift 中 @MainActor 似乎被 withCheckedContinuation 而不是其他异步调用继承是巧合吗?

iOS 如何使用 Alamofire 解析 JSON 可编码数组

'DismissAction'类型的值没有成员'wrappedValue'在SwiftUI的Xcode中

SwiftUI:通过Sheet将数据添加到Realm DB时视图不更新

swiftUI中的剪辑形状无法使用旋转效果

在 Swift 中按下返回键时在文本字段之间切换

从 NSUserDefaults 字典 iOS 中删除所有键

如何使用 swift 添加速率按钮的链接?

SLComposeViewController 分享教程

Storyboard Segue 从视图控制器到自身

如何用 CAShapeLayer 和 UIBezierPath 画一个光滑的圆?

如何删除UITableView中最后一个单元格的最后一个边框?

你如何以编程方式从视图控制器中画一条线?

错误 itms-90035 - Xcode

如何创建 Select 器数组