On 23 Aug 2012, at 03:14, Graham Cox wrote:

> 
> On 23/08/2012, at 9:37 AM, Graham Cox <graham....@bigpond.com> wrote:
> 
>> Trying to work around this is proving impossible with the current sandbox 
>> implementation - there are too many opaque hacks in the system that mean you 
>> cannot trust the URLs you get from anywhere to actually point to the right 
>> place, and you also have to hard-code paths in your entitlements which are 
>> extremely fragile under both localisation and system updates. (For example, 
>> if I add a temporary entitlement to ~/Pictures/iPhoto Library, if that 
>> location changes, or is named differently, my app stops working. Note the 
>> name of the iPhoto Library did subtly change between 10.7 and 10.8 - the 
>> space is a different unicode character now).
> 
> 
> 
> Well, I spoke too soon, and have actually solved this problem. Whether it 
> proves to be robust I can't say, but it wouldn't seem to be any worse than 
> our un-sandboxed app in that respect.
> 
> 
> Turns out the problem I was having with this is because of the behaviour of 
> [NSURL fileURLWithPath:isDirectory:].
> 
> When I passed the path to the iPhoto database file (~/Pictures/iPhoto 
> Library/Album.xml) the resulting URL was bizarrely altered to point to some 
> non-existent path within my sandbox. In fact it looks like a bug because it 
> ended up concatenating 'file://' somewhere in the middle of the path which 
> makes no sense. Instead, I used [NSURL URLWithString:] and it works correctly.

Your description here sounds unlikely. The URL APIs are extremely well-tested 
and robust; I would be surprised if you really have found a bug like this.

What is the path you were sending into +fileURLWith… ? Your description 
suggests it contains a ~ symbol, which NSURL is not going to resolve for you. 
If +URLWithString: is working instead, then most likely you never had a path to 
start with, but a string representation of a URL.

Where did this path even originate from, considering all the relevant APIs use 
URLs these days?

Of course I might be wrong and you’ve found a bug. If so I would like to be 
aware of it and file a radar on the subject.


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to