Photo Permissions on iOS

Any time an iOS app wants to give you access to your own photos, it must first ask you for permission to do so. This is understandable, because you don’t want just any app you download to be able to have its way with your photo library. But the way that the operating system asks for permission is problematic.

A Defective Dialog

If any of the photos in your library contain location data — basically if you’ve taken any pictures with the device’s built-in camera, which in addition to snapping an image also embeds GPS data into each shot — then the dialog box that pops up to ask you for permission looks like this:

Dialog Box

From a technical perspective, this dialog box makes sense, because the sensitive information at question isn’t the photos but the location data. Nevertheless, it’s a very confusing way to ask the question, because most users don’t think of their photos as being anything more than just that — photos. But this dialog appears to regard photos as containers of location data, and emphasizes that characteristic more than any other.

One of the key features of our app Mixel is the ability to use your own photos to make collages. Naturally, we need to allow people to access their own photo libraries. That means that a majority of Mixel users encounter this dialog after installing our app, and we see again and again that its somewhat unclear phrasing trips many of them up. Many users think to themselves, “My current location? I don’t see a reason to give this app access to that data; all I want is to use my own photos,” and then they tap “Don’t Allow.”

It would be one thing if that could be reversed easily, but once the user taps “Don’t Allow,” for all intents and purposes the app never gets direct access to the photo library. That’s an exaggeration, but in truth there are only two ways to allow the user to change his or her mind, neither of which are elegant. The first option is to delete the app entirely and reinstall it fresh from the App Store, at which point the app will present the same dialog box when users try to access their own photos for the first time.

The second option is to ask the user to dive into the Settings app in order to manually reverse the relevant preference, which is not exactly an intuitive process. In Mixel, we present the user with an instructional graphic in place of the photos that would normally appear; the graphic directs the user to open up the Settings app, tap on “Location Services,” find the setting for Mixel and switch that on.

It’s all a bit of a headache, but it could be cured so easily with a simple copywriting change. Any number of common-sensical edits would help clarify the message; it wouldn’t take a poet to find the right combination. It just goes to show how important good copywriting is to good interface design.

I hope this is something that gets corrected in the next version of iOS.



  1. Why is access to the location data necessary to have access to the photos?

    Sharing location data should not mean sharing photos. If the only way to get access to the photos is for the app to ask for ability to use current location / gps information, then that should be fixed.

    There should be two different prompts:

    1. do you want to allow this app to be able to access your photos?
    2. do you want to allow this app to access your current location data?

    While photos may contain previous location data directly embedded into the photos, current location data access shouldn’t be required to access photos.

  2. Daniel: You’re right, actually; I should’ve made that bigger point in my post. It shouldn’t be necessary to access both the location data when the app accesses the photos.

  3. What Apple really should do is have the photos API filter geotagging out of the EXIF data it hands over to the app. If the app asks the user for and gets CoreLocation permissions, then it gets the unfiltered geotagging. That would solve all of this.

  4. Sounds like your solution would require a change to the location services permissions model to make it more complex. Then any app would have 2 different location permissions (one for photos, one for current location), each of which has 2 states (on or off), so 4 possible combinations to worry about for every app. Overall, I’m not sure if that would be better or worse than the current situation.

  5. How is it that Apples iPhoto does not ask for that location-permission but still has access to the photo library (and the location data by the way)?

Thank you! Your remarks have been sent to Khoi.