github sparrowcode/PermissionsKit 12.0.0

3 hours ago

Maintenance release after a long pause. Mostly a cleanup, but it changes what the package requires and how it is installed, hence the major bump.

Breaking

  • Deployment targets are now iOS 15, tvOS 15, watchOS 9 and macOS 13. Xcode 26 no longer builds for anything older.
  • The package builds in Swift 6 language mode. Completion closures are @MainActor — a permission dialog is UI work, and calling request { } from a view controller keeps working unchanged.
  • CocoaPods support is gone. The podspec, the subspecs and the PERMISSIONSKIT_* build flags went with it; Swift Package Manager is the only supported install.
  • HealthPermission returned the two usage description keys the wrong way round. readingUsageDescriptionKey is now NSHealthShareUsageDescription and writingUsageDescriptionKey is NSHealthUpdateUsageDescription. Check what your Info.plist says if you took the keys from here.

Fixed

  • Simplified Chinese never loaded: the folder was named zh_Hans.lproj with an underscore, which no bundle matches.
  • Microphone moved off AVAudioSession.recordPermission, deprecated since iOS 17, to AVAudioApplication.
  • Photo library moved off the legacy PHPhotoLibrary calls, which report plain authorized even under limited access, to the access-level variants.
  • Motion no longer calls stopActivityUpdates() after a query — that method pairs with startActivityUpdates and did nothing here.
  • Calendar, Reminders and Location each had a switch branch that could never run, because EKAuthorizationStatusAuthorized and kCLAuthorizationStatusAuthorized are aliases of fullAccess and authorizedAlways.
  • The package now builds cleanly for macOS, tvOS and watchOS. It did not before: announcement is unavailable outside iOS, watchOS and visionOS, and the Photos and AppTrackingTransparency targets have no watchOS counterpart.

Don't miss a new PermissionsKit release

NewReleases is sending notifications on new releases.