I have a macOS application that scans newly mounted volumes for specific files and displays them in a list. To make the application available in the Mac App Store I must get the users permission to access the mounted volumes (mostly USB-drives). Showing an open-file-dialog and asking the user to select the correct volume from the provided list in /Volumes/ would not be an user friendly solution, especially when there are many volumes. Is there a way to simply display a dialog when a new volume is mounted which asks the user „Would you grant application x the access to volume y?" so the user only has to push the yes/no button?
- By default apps are only granted permission to access files/folders/volumes by a user action, such as the Open Dialog or via Drag and Drop. There are a couple of locations your application can access, but not volumes.
- There is an old entitlement that would technically allow you to do this, but unless your working for a company that Apple thinks they’ll make lots of money from, you probably won’t be given permission to use it.
- In theory you should be able to do this by creating a XPC service, however I’ve failed to get even basic things working and this must (AFAIK) be created in Apple’s Xcode. Doesn’t mean that you won’t get it to work!
- If you look at competitors on the Mac App Store, they may use this old entitlement, be too old to use Sandboxing or use a newer entitlement that is not published. Unpublished entitlements generally require authorization from Apple to use.
If you choose to ship on your web site…
- macOS 10.15 will prompt the end user to allow your application access to remote or removable volumes (unless it’s via an Open Dialog or drag and drop). Users forget that they clicked “No” to the scary dialog, and to change that setting requires a trip (for the user) into the Privacy settings of System Preferences.
- However there is a setting in System Preferences that allows an application access to every thing, ask @ThomasTemplamann as he has a really nice GUI and set-up for guiding users to enable this option.
I believe you request permission by submitting your application to Apple (via the standard ways) and when it gets rejected, you request that someone from Apple to call you. Wait a week and they do call, from what I understand (as I’ve not done this myself), they take information and go away. Then they call you in a couple of days with the answer. If you don’t get permission, you have to find an alternative solution before your application will be accepted for distribution via their “store”.
My honest advice is to build for website distribution first, then attempt the App Store. If you don’t get satisfaction from the App Store (and not all devs do), you can at least sell it on your own site.
Sorry to be a doomsayer, but I hope that this helps.
I already had the application submitted to the Mac App Store, got rejections and gave up because of frustration. If I would change the app to comply to the store rules then the app would be no longer user-friendly. Sadly, every new macOS release seems to restrict the possibilities to access the file system even more. Reading your answer, it seems that for me, making the app availble on my website is currently the only feasible solution. At least, without the app-store restrictions (sandboxing) the user only needs to grant the app „Full Disk Access“ in „System Preferences“ to make it work as expected.
Oh, man… I am so sorry to hear this.
Certainly look up @Thomas and see if he is able to help you with the GUI for configuring full disk access.
You know, if you wanted to do so, you can ask the App Store reviewers to have one of the Resolution Team members call you. It takes about 5 working days, they’re not technical people, but they have access to technical people, if you wanted to try, you could ask them to ask their technical people if there is something that I am not aware of, which might get your app approved.
And many of us old-timers feel the same way about the macOS as we watch the walls come up, the functionality dissipate and the bugs multiply.