Reference

Photo Library Permission

Photo Library Permission is the iOS and iPadOS consent an app must obtain before it can read or modify the system Photos library through PhotoKit. The user chooses Full Access, Limited (a selected subset), or None. A cleaner needs this grant to scan your photos for duplicates and clutter, and the choice controls what it can see.

Build & packagingiOSiPadOS

Photo Library Permission

Also known as: photo permission ios, phauthorizationstatus

Photo Library Permission is the iOS and iPadOS consent an app must obtain before it can read or modify the system Photos library through PhotoKit. The user chooses Full Access, Limited (a selected subset), or None. A cleaner needs this grant to scan your photos for duplicates and clutter, and the choice controls what it can see.

  • iOS apps request photo access via PHPhotoLibrary.requestAuthorization and read the result as a PHAuthorizationStatus.
  • iOS 14+ offers Limited access, where the app sees only user-selected photos instead of the whole library.
  • Photo deletions go through PhotoKit change requests, so iOS shows its own confirmation and keeps items in Recently Deleted for 30 days.

How the permission works

On iOS and iPadOS, the Photos library is protected. An app calls PHPhotoLibrary.requestAuthorization(for:) with an access level of `.readWrite` or `.addOnly`, which shows the system prompt. The result is a PHAuthorizationStatus: `.authorized` (full), `.limited`, `.denied`, `.restricted`, or `.notDetermined`.

The prompt text comes from the NSPhotoLibraryUsageDescription string in Info.plist; without it the app cannot request access. The user can change the choice later in Settings > Privacy & Security > Photos.

Full vs Limited access

Since iOS 14, users can grant Limited access, picking only specific photos. The app then sees just those assets via PHAsset; everything else is hidden. With Full Access the app can enumerate the entire library.

When access is limited, the app can present the system picker again via presentLimitedLibraryPicker(from:) so the user can add more photos to the shared set. A cleaner needs Full Access to scan the whole library for duplicates and large files; under Limited access it can only act on the chosen subset.

What a cleaner does with it

Once authorized, the cleaner uses PhotoKit to fetch PHAsset metadata, generate thumbnails, and group duplicates and similar shots. Deletions go through PHPhotoLibrary change requests, which trigger iOS's own confirmation and route removed items to Recently Deleted for 30 days.

Because the OS mediates every deletion, the user always gets a final confirmation, and nothing is permanently erased immediately.

Related terms

Keep reading the reference.

Act on it

Guides and tools for this topic.