reject issue "NSPhotoLibraryAddUsageDescription"

Hello!!

I have a question!

My game include a screencapture share button.

The player can easily share the screencapture with a friend by pressing the button.

It’s been registered in the App Store in 2015 and is still in service.

I received this rejection this time.

(It was an update that only changed the appodeal plugin to beta.)

thanks in advance!

From Apple

  1. 1.1 Legal: Privacy - Data Collection and Storage

Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage

We noticed that your app requests the user’s consent to access their photos but does not clarify the use of this feature in the permission modal alert.

Next Steps

To resolve this issue, please revise the permission modal alert to specify why the app is requesting access to the user’s photos.

Please also verify the modal alerts for all other functions requiring permission (camera, microphone, contacts, location, etc) that we may have been unable to observe at the time of review.

The permission request alert should specify how your app will use this feature to help users understand why your app is requesting access to their personal data.

this is my code

m.share\_photo = function( group ) local screenshotDirectory = system.DocumentsDirectory local screenshot = "ss\_"..os.date("%Y%m%d%H%M%S") .. ".png" display.save(m.photo\_group, screenshot, screenshotDirectory) local function share\_photo( ) local listener = {} function listener:popup( event ) end if system.getInfo("targetAppStore") == "apple" then native.showPopup( "activity", { items = { { type = "image", value = { filename = screenshot, baseDir = screenshotDirectory } }, { type = "url", value = homepage\_URL }, }, listener = listener }) else native.showPopup( "social", { service = "share", listener = listener, image = { { filename = screenshot, baseDir = screenshotDirectory }, }, url = { homepage\_URL } }) end end native.setActivityIndicator( true ) timer.performWithDelay( 2000, function() native.setActivityIndicator( false ) end ) timer.performWithDelay( 500, share\_photo ) end

And I try Google search. I added the following statement.

and reply Resolution Center.

I don’t know what I am going to do.

I’m afraid I’ll get reject again.

 iphone = { xcassets = "Images.xcassets", plist = { NSPhotoLibraryUsageDescription = "It's easy to share your record with a friend.", NSPhotoLibraryAddUsageDescription = "It's easy to share your record with a friend.",

now Apple’s answer to this: 

From Apple

  1. 1.1 Legal: Privacy - Data Collection and Storage

Hello,

Thank you for your response. A change to the binary will require submitting the new build

The purpose strings in your modal alerts currently describe the function (e.g. “to add the photo library”) but do not describe the purpose for using the function. 

To clarify, the alert needs to specify the purpose for using the information, not just that it needs permission to use the information. Why and how is the app using the information?

All the other modal alerts in your app should be deleted if not used or specified as unused. “NSPhotoLibraryAddUsageDescription” is not necessary and would only confuse the user. The other purpose strings which state “should be set to a valid usage description”, should be clarified or marked as unused.

We look forward to reviewing your app once these issues have been addressed and the new build has been received and queued for review.

Best regards,

App Store Review

Hi, as I can see, you need to describe - why you used personal user’s data in your application. It should look like this in your case “The application needs to use photos to sharing them via friends.” They need from you to describe the purposes to use this data. Not just “It’s easy to share your record with a friend.”

Tim

Thank you very much Tim!!

The AppleReview has passed!! :slight_smile:

 NSPhotoLibraryUsageDescription = "The application needs to use photos to sharing them via friends.", NSPhotoLibraryAddUsageDescription = "The application needs to use photos to sharing them via friends.",

And I try Google search. I added the following statement.

and reply Resolution Center.

I don’t know what I am going to do.

I’m afraid I’ll get reject again.

 iphone = { xcassets = "Images.xcassets", plist = { NSPhotoLibraryUsageDescription = "It's easy to share your record with a friend.", NSPhotoLibraryAddUsageDescription = "It's easy to share your record with a friend.",

now Apple’s answer to this: 

From Apple

  1. 1.1 Legal: Privacy - Data Collection and Storage

Hello,

Thank you for your response. A change to the binary will require submitting the new build

The purpose strings in your modal alerts currently describe the function (e.g. “to add the photo library”) but do not describe the purpose for using the function. 

To clarify, the alert needs to specify the purpose for using the information, not just that it needs permission to use the information. Why and how is the app using the information?

All the other modal alerts in your app should be deleted if not used or specified as unused. “NSPhotoLibraryAddUsageDescription” is not necessary and would only confuse the user. The other purpose strings which state “should be set to a valid usage description”, should be clarified or marked as unused.

We look forward to reviewing your app once these issues have been addressed and the new build has been received and queued for review.

Best regards,

App Store Review

Hi, as I can see, you need to describe - why you used personal user’s data in your application. It should look like this in your case “The application needs to use photos to sharing them via friends.” They need from you to describe the purposes to use this data. Not just “It’s easy to share your record with a friend.”

Tim

Thank you very much Tim!!

The AppleReview has passed!! :slight_smile:

 NSPhotoLibraryUsageDescription = "The application needs to use photos to sharing them via friends.", NSPhotoLibraryAddUsageDescription = "The application needs to use photos to sharing them via friends.",