1 Reply
      Latest reply on Oct 30, 2019 7:17 PM by john daniel
      pkamb Level 1 Level 1 (0 points)

        For better or for worse, many sandboxed apps ask for "/" access via an Open Panel, and then save a Sandbox Bookmark to that location. They are then able to work freely in the File System (for the user's benefit). This is accepted sandbox behavior by App Review.

         

        Catalina adds a new "Full Disk Access" permission to System Preferences.

         

        At WWDC and in the betas, I believe that this new permission was added to grant access to "SIP-like" private files in the filesystem (such as the Mail database, iMessages, etc.) that even apps with "/" access should not have access to.

         

        Two questions:

         

        1. Does adding Full Disk Access grant access, as if you had a Sandbox Bookmark? Or is it that *IF* you have an existing Sandbox Bookmark, you can additionally access the SIP-like files?

        2. Assuming that it does grant access, can a tutorial for the user to enable Full Disk Access be used as an ALTERNATIVE to the (error-prone and unintuitive) granting of "/" sandbox access via an Open Panel? Are there any App Store Guidelines or real-world Reviews that show that this can or can't be used in the App Store?

        • Re: Can/Should Full Disk Access be used as an alternative to "/" Sandbox Bookmarks?
          john daniel Level 4 Level 4 (570 points)

          It was Mojave that introduced Full Disk Access via System Preferences. Catalina introduces File and Folder restrictions on Desktop, Documents, Downloads, and maybe a few more.

           

          1) If you want to escape the sandbox and poke around in a restricted directory, you will need both a security scoped bookmark to / and Full Disk Access.

          2) Any kind of tutorial or help regarding Full Disk Access or Sandbox escaple is an automatic rejection for the Mac App Store. You can use it, but customers have to find out about it on their own. You can have it in your help too. You just can't put it in front of the user as a condition of using the app.

           

          Imagine you were writing the app for iOS instead. That's what Apple wants you to do.