Skip to content

Commit ca5b0d3

Browse files
committed
Integrate permission defines from previous SPM work
- Add environment variable-based permission defines (PERMISSION_CAMERA, etc.) - Allow consumers to selectively enable only needed permissions - Default all permissions to 0 (disabled) for minimal footprint - Keep essential header search paths - Simplified structure without unnecessary framework dependencies Based on approach from Baseflow#1440
1 parent b7ba6b0 commit ca5b0d3

File tree

1 file changed

+23
-10
lines changed
  • permission_handler_apple/ios/permission_handler_apple

1 file changed

+23
-10
lines changed

permission_handler_apple/ios/permission_handler_apple/Package.swift

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,27 @@
11
// swift-tools-version: 5.9
22
import PackageDescription
33

4+
let environmentVariables = ProcessInfo.processInfo.environment
5+
6+
let permissionDefines: [CSetting] = [
7+
.define("PERMISSION_EVENTS", to: environmentVariables["PERMISSION_EVENTS"] ?? "0"),
8+
.define("PERMISSION_EVENTS_FULL_ACCESS", to: environmentVariables["PERMISSION_EVENTS_FULL_ACCESS"] ?? "0"),
9+
.define("PERMISSION_REMINDERS", to: environmentVariables["PERMISSION_REMINDERS"] ?? "0"),
10+
.define("PERMISSION_CONTACTS", to: environmentVariables["PERMISSION_CONTACTS"] ?? "0"),
11+
.define("PERMISSION_CAMERA", to: environmentVariables["PERMISSION_CAMERA"] ?? "0"),
12+
.define("PERMISSION_MICROPHONE", to: environmentVariables["PERMISSION_MICROPHONE"] ?? "0"),
13+
.define("PERMISSION_SPEECH_RECOGNIZER", to: environmentVariables["PERMISSION_SPEECH_RECOGNIZER"] ?? "0"),
14+
.define("PERMISSION_PHOTOS", to: environmentVariables["PERMISSION_PHOTOS"] ?? "0"),
15+
.define("PERMISSION_LOCATION", to: environmentVariables["PERMISSION_LOCATION"] ?? "0"),
16+
.define("PERMISSION_LOCATION_WHENINUSE", to: environmentVariables["PERMISSION_LOCATION_WHENINUSE"] ?? "0"),
17+
.define("PERMISSION_NOTIFICATIONS", to: environmentVariables["PERMISSION_NOTIFICATIONS"] ?? "0"),
18+
.define("PERMISSION_MEDIA_LIBRARY", to: environmentVariables["PERMISSION_MEDIA_LIBRARY"] ?? "0"),
19+
.define("PERMISSION_SENSORS", to: environmentVariables["PERMISSION_SENSORS"] ?? "0"),
20+
.define("PERMISSION_BLUETOOTH", to: environmentVariables["PERMISSION_BLUETOOTH"] ?? "0"),
21+
.define("PERMISSION_APP_TRACKING_TRANSPARENCY", to: environmentVariables["PERMISSION_APP_TRACKING_TRANSPARENCY"] ?? "0"),
22+
.define("PERMISSION_CRITICAL_ALERTS", to: environmentVariables["PERMISSION_CRITICAL_ALERTS"] ?? "0")
23+
]
24+
425
let package = Package(
526
name: "permission-handler-apple",
627
platforms: [
@@ -23,16 +44,8 @@ let package = Package(
2344
publicHeadersPath: "include",
2445
cSettings: [
2546
.headerSearchPath("include"),
26-
.headerSearchPath("include/permission_handler_apple"),
27-
.define("PERMISSION_HANDLER_APPLE", to: "1")
28-
],
29-
cxxSettings: [
30-
.headerSearchPath("include")
31-
],
32-
linkerSettings: [
33-
.linkedFramework("UIKit", .when(platforms: [.iOS])),
34-
.linkedFramework("Foundation")
35-
]
47+
.headerSearchPath("include/permission_handler_apple")
48+
] + permissionDefines
3649
),
3750
]
3851
)

0 commit comments

Comments
 (0)