Re: Questions about sandboxing under Catalina
Re: Questions about sandboxing under Catalina
- Subject: Re: Questions about sandboxing under Catalina
- From: Steve Mills via Cocoa-dev <email@hidden>
- Date: Wed, 8 Jan 2020 15:43:17 -0600
On Jan 8, 2020, at 15:29:47, Gabriel Zachmann via Cocoa-dev
<email@hidden> wrote:
>
> In my screensaver, I try to search the Pictures directory in the user's home.
> It is OK - for now - if my app cannot access any .photoslibrary, but I'd like
> to pick up
> any other images in ~/Pictures.
>
> I get the path using this line of code:
> [NSHomeDirectory() stringByAppendingPathComponent: @"Pictures/"]
>
> However, when I print the actual path to the system log, it says it is
> accessing this path:
>
> /Users/me/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Pictures
>
> Is this directory somehow linked to ~/Pictures ?
> Or how can I access the true ~/Pictures directory ?
That's how sandboxing works. My image-based screensaver works the same way,
although the folders need to be chosen by the user, which ensures it has access
to the files within, and I store security-scoped bookmark data for each url
they choose. A sandboxed app can only access files through its container folder
(~/Library/Containers/com.whatever.app/blah blah). And for 10.15 at least,
that's the screensaver engine that runs your screensaver. It makes one think
that Apple might be developing a framework for newer (non-legacy) screensavers
in the future.
> Also, I am trying to read some data from a file in Application Support.
> <snip>
> When I print lastRunInfoPath_ , I get
> lastRunInfoPath =
> file:///Users/me/Library/Containers/com.apple.ScreenSaver.Engine.legacyScreenSaver/Data/Library/Application Support/ArtSaver/LastRunInfo.plist
>
> Can I continue with this just as before under Mojave?
> Will info stored in such a plist be persistent?
Again, that's fine. That's the actual path that sandboxing will use. But if
Apple does away with the legacy screensaver in the future, who knows if they'll
automatically transfer files stored by 3rd party screensavers, or if they'll
just start fresh.
--
Steve Mills
Drummer, Mac geek
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden