For the complete documentation index, see llms.txt. This page is also available as Markdown.

📂Photo Library

Grant your app persistent access to the user's entire photo library.

What is Photo Library?

The Photo Library feature gives your app broad, persistent access to the user's entire photo library on both iOS and Android - including the Android READ_MEDIA_IMAGES and READ_MEDIA_VIDEO permissions, and the iOS NSPhotoLibraryUsageDescription (Photos) permission.

The device's standard system picker is always available to your app regardless of this setting. If you only need to let users upload a photo - a profile picture, a listing image, an attachment - you don't need to enable this feature at all; the system picker handles that without requiring broad permissions.

Natively Dashboard Setup

  1. Open your Natively app dashboard and navigate to Features > Photo Library.

  2. Toggle the feature to Enabled.

  3. Select which Android permissions your app needs: READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, or both - only check the ones your app actually uses.

  4. Enter the Permission Description.

  5. Click Save.

  6. Rebuild your app(s).

The Permission Description is the text shown to users when the OS asks them to grant photo library access. Explain clearly why your app needs this permission - for example: "We use your photo library to let you browse and select multiple images for your gallery".

How to use

Default to the system picker

For most apps - profile pictures, listing photos, message attachments - the standard file input picker covers it without needing this feature enabled at all. Only enable Photo Library if your app's core purpose depends on browsing or managing the user's full photo library.

If your app lets users browse their camera roll, select multiple photos at once, or manage albums, Photo Library is the right choice - the system picker isn't built for that kind of bulk or repeated access.

Only check the Android permissions your app actually uses

If your app only works with photos and never handles video, check READ_MEDIA_IMAGES alone rather than both - requesting permissions you don't use increases rejection risk.

Write a Permission Description that matches the actual use case

Since this permission grants broad access on both iOS and Android, be specific about why - vague descriptions like "to improve your experience" are a common cause of rejection. Explain the real feature, e.g. "We use your photo library to let you browse and select multiple images for your gallery".

Troubleshooting

App rejected by Google Play Store or Apple App Store

Both stores may reject apps where the underlying use case doesn't justify persistent, full-library access - marketplace, classifieds, and listing apps are common examples that get rejected even with a valid description. Only enable this feature for apps like photo editors or gallery managers where broad access is core to the app's function; otherwise, use the system picker (default behavior).

Last updated