NSRemindersUsageDescription Info.plist Key is Misspelled in the Documentation
I am working on code that reads Apple Reminders data. To fetch reminders from an EKEventStore
in EventKit
, you need to request permissions.
But you can only request permissions for calendar, event, or reminders access if your app’s Info.plist
contains the appropriate key.
Now here’s the bummer: the Apple Developer Documentation contains a typo.
To access the user’s calendar events, reminders, and contacts through EventKitUI, you need to include descriptions for:
NSCalendarUsageDescription
NSReminderUsageDescription
NSContactsUsageDescription
https://developer.apple.com/documentation/eventkit/accessing_the_event_store
It needs to say reminders, plural. It’s NSRemindersUsageDescription
, not NSReminderUsageDescription
. If you follow the link from the docs you will see the archived developer documentation has the correct spelling.
So now you know why your test code doesn’t show a permission dialog and only logs a message like
2020-09-21 13:20:24.372953+0200 RemidnersFetching[17484:4620827] [error] error: -addPersistentStoreWithType:NSXPCStore configuration:(null) URL:file:///Users/.../Library/Calendars/Calendar%20Cache options:{
NSInferMappingModelAutomaticallyOption = 1;
NSMigratePersistentStoresAutomaticallyOption = 1;
NSPersistentHistoryTrackingKey = {
NSPersistentHistoryTrackingEntitiesToExclude = (
ChangeRequest
);
};
agentOrDaemon = 1;
serviceName = "com.apple.CalendarAgent.database";
} ... returned error NSCocoaErrorDomain(134070) with userInfo dictionary {
Problem = "request failed, insufficient permission";
}
If you get that, double-check your plist keys.
(I submitted FB8723050
.)