eskimo wrote:
This is very bad advice. It’s effectively recommending that folks cheat App Review, and that often ends badly.
Can you recommend some other place for the feature?
I am most definitely NOT recommending that anyone cheat App Review.
I am using my own recent experience with a similar feature. You can try to explain it in review notes until you are blue in the face. It won't help. It doesn't matter if the feature isn't required. It doesn't matter if your app works just fine without it. If App Review sees it, that's an automatic rejection. By all means, after your 3rd or 4th rejection, mention in the review notes how you moved that button to preferences. They probably aren't going to read those notes anyway.
As an Apple engineer, you really don't know what it is like for app developers trying to get software released on the App Store. I had yet another rejection last night due to the inverse of this strategy. I had users giving me 1 star reviews for no other reason than having an in-app purchase button visible. So I re-worked the display so the user wouldn't see that button unless they were really interested in that feature and scrolled down to learn more. My app was rejected because there was supposedly no way for the user to purchase the in-app content. So in my response, I used the attach button to include a screen recording showing how to use the "See solution" button (which is visible) to automatically scroll the view down to the in-app purchase information. I'm now back "in review" for good or bad.
From what the OP has described, this is a critical piece of their app's functionality. As I explained in my reply two weeks ago, that app is dead in the water as far as the App Store goes. They need to pull the app and release it under a Developer ID until they can get this figured out. I have said repeatedly that my suggestions are likely to trigger an App Store rejection. My concern was that they are going to have the app pop-up some big button demanding full disk access. That's a non-starter for App Review. They can do that with a Developer ID distribution, and implement it however they way, whether it is an "official API" or not.
The OP may be able to get a functional version of the app back in the store. They will have to do the following:
1) Make sure it works without access to restricted locations
2) Make sure none of the metadata or screenshots refers to any data from said restricted locations
At that point, I see no problem in having a preference setting that allows full disk access. As far as I can tell, App Review doesn't have a problem with that either. The App Review guidelines are a "living document" after all. If you don't want people doing that, tell them to stop and they will (at least the honest ones will). Problem solved. But if it is not forbidden, then there is no reason why developers shouldn't use it as long as they ensure that the app works without it.
It doesn't sound like the OPs app is really suitable for the App Store anyway. That is another excellent reason to go the Developer ID route. If they want to do a little extra work, they can get a "Lite" version in the App Store for marketing if nothing else. Then, they can be at their leisure to work through future rejections without getting all stressed out about it. That is what I'm doing. I'm not hiding anything or cheating anyone.