Sqlite and Monterey on M1
Paul Dupuis
paul at researchware.com
Thu May 12 15:30:23 EDT 2022
On 5/12/2022 2:25 PM, Richard Gaskin via use-livecode wrote:
> Bob Sneidar wrote:
>
> > I don't think the latest Apple operating systems allow the writing
> > to the App Support folder, even if you have explicit write
> > permissions.
>
> Where are we supposed to write application support files if not to
> Application Support?
>
> First they demanded control of the file format apps use for Prefs, now
> this...
>
I did a little bit of research when I ran into my app breaking on
Catalina and up when trying to reach a folder at
specialFolderPath("temporary") and write files in that folder. The
problem is that newer macOSes use an runtime algorithm to try to
determine when an application is asking for access in "special" places.
If the algorithm detect special access (sat to the Desktop or Documents
folder or a Webcam and so on) the OS pops up the "Do you want to allow
.. " dialog for the user to allow or deny access. An application signed
and notarized WITH entitlements can specify some entitlements that are
checked and if the App has declared these entitlements to protected
resources, they are allowed. Some "protected" resources have NOT
corresponding entitlements (at least currently). For disk access to
folder paths without entitlements, the user can grant an application
Full Disk Access, from System Preferences > Security, but and App can
not specify an entitlement for Full Disk Access. It must be granted by
the user.
Further, an Apple Engineer is a forum response (or someone claiming to
be an Apple Engineer) noted that the algorithm to detect requests for
special access resources can make mistakes and not recognize a request
as a request and there for present a dialog to the user for allowing or
denying and the default is to deny. So some circumstances, like apps
running in multiple processes (was an example cited, but it was implied
there are other circumstances) your app MIGHT get the allow/deny dialog
OR it might not - depending on your app. And for some resources, it just
won't get any dialog and no entitlement will allow access, only
instructions to the user to grant Full Disk Access (or some other
similar ONLY allowed by the user permissions) will work.
In short, Apple's sandboxing is a developer mess. If you can, placing
files in the Documents folder is best as (A) you can specify the
Documents folder in an entitlement and (C) the sandboxing algorithm does
seem to always detect (first time) Documents access requests and pop up
the dialog.
DISCLAIMER: I did not have time to research this in detail and the
"apple engineer" may or may not have been a real Apple engineer or knew
what they were posting about. Our installer asks people on the last
screen to grant our apps full disk access (if they are on Catalina+) and
most people do and it solved a lot of recoding.
More information about the use-livecode
mailing list