Skip to content

Commit 95350ca

Browse files
committed
fix(apple): correct SPM permission flag mapping for photos and calendarWriteOnly
- PERMISSION_PHOTOS now triggers on NSPhotoLibraryAddUsageDescription alone, since PhotoPermissionStrategy (which handles photosAddOnly) compiles under PERMISSION_PHOTOS — without this, photosAddOnly silently fell back to UnknownPermissionStrategy when NSPhotoLibraryUsageDescription was absent - PERMISSION_EVENTS_FULL_ACCESS now also triggers on NSCalendarsWriteOnlyAccessUsageDescription (iOS 17+), enabling calendarWriteOnly which requires PERMISSION_EVENTS || PERMISSION_EVENTS_FULL_ACCESS in native code - Sync podspec version to 9.4.8 - Restore NSCameraUsageDescription in example Info.plist (lost during rewrite) - Add NSCalendarsWriteOnlyAccessUsageDescription to example Info.plist
1 parent 526e62f commit 95350ca

3 files changed

Lines changed: 13 additions & 5 deletions

File tree

permission_handler_apple/example/ios/Runner/Info.plist

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
<string>Calendar full access</string>
3535
<key>NSCalendarsUsageDescription</key>
3636
<string>Calendars</string>
37+
<key>NSCalendarsWriteOnlyAccessUsageDescription</key>
38+
<string>Calendar write only</string>
39+
<key>NSCameraUsageDescription</key>
40+
<string>camera</string>
3741
<key>NSContactsUsageDescription</key>
3842
<string>contacts</string>
3943
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>

permission_handler_apple/ios/permission_handler_apple.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44
Pod::Spec.new do |s|
55
s.name = 'permission_handler_apple'
6-
s.version = '9.3.0'
6+
s.version = '9.4.8'
77
s.summary = 'Permission plugin for Flutter.'
88
s.description = <<-DESC
99
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.

permission_handler_apple/ios/permission_handler_apple/Package.swift

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,11 @@ let permissionDefines: [CSetting] = [
4747
.define("PERMISSION_EVENTS",
4848
to: enabled("PERMISSION_EVENTS",
4949
plistKeys: "NSCalendarsUsageDescription")),
50-
// dart: PermissionGroup.calendarFullAccess (iOS 17+)
50+
// dart: PermissionGroup.calendarFullAccess (iOS 17+) / PermissionGroup.calendarWriteOnly (iOS 17+)
5151
.define("PERMISSION_EVENTS_FULL_ACCESS",
5252
to: enabled("PERMISSION_EVENTS_FULL_ACCESS",
53-
plistKeys: "NSCalendarsFullAccessUsageDescription")),
53+
plistKeys: "NSCalendarsFullAccessUsageDescription",
54+
"NSCalendarsWriteOnlyAccessUsageDescription")),
5455
// dart: PermissionGroup.reminders
5556
.define("PERMISSION_REMINDERS",
5657
to: enabled("PERMISSION_REMINDERS",
@@ -71,10 +72,13 @@ let permissionDefines: [CSetting] = [
7172
.define("PERMISSION_SPEECH_RECOGNIZER",
7273
to: enabled("PERMISSION_SPEECH_RECOGNIZER",
7374
plistKeys: "NSSpeechRecognitionUsageDescription")),
74-
// dart: PermissionGroup.photos
75+
// dart: PermissionGroup.photos / PermissionGroup.photosAddOnly
76+
// NSPhotoLibraryAddUsageDescription alone also enables PhotoPermissionStrategy because the
77+
// native code compiles photosAddOnly support under PERMISSION_PHOTOS.
7578
.define("PERMISSION_PHOTOS",
7679
to: enabled("PERMISSION_PHOTOS",
77-
plistKeys: "NSPhotoLibraryUsageDescription")),
80+
plistKeys: "NSPhotoLibraryUsageDescription",
81+
"NSPhotoLibraryAddUsageDescription")),
7882
// dart: PermissionGroup.photosAddOnly
7983
.define("PERMISSION_PHOTOS_ADD_ONLY",
8084
to: enabled("PERMISSION_PHOTOS_ADD_ONLY",

0 commit comments

Comments
 (0)