Hi,

I have the feeling this may be a stupid question and that I'm missing the 
obvious here, but...

My application comes with an interactive tutorial - that is, a tutorial that 
uses my app's file format so that the user opens it in my app and learns how to 
use the program by the very process of going through the tutorial, as with many 
programs.

The best way of distributing this tutorial has always been a problem. My 
application cannot open read-only files, so it requires the tutorial file (or 
any other file it opens for that matter) to have the correct permissions for 
the user to be able to open it. I used to distribute this tutorial as a 
separate file on the program's installer DMG with instructions in the readme to 
copy it somewhere locally. However, I soon discovered that many users don't 
read the readme file (I have no idea why that was a surprise to me given that I 
never read them myself), so many would try to open the tutorial straight from 
the DMG and get a message saying that the tutorial couldn't be opened because 
they didn't have the correct permissions - not a good first impression, 
obviously.

My solution was this: have the tutorial built into the application itself (that 
is, part of my Xcode project so that it gets compiled into the Resources folder 
of the application bundle). When the user selects "Tutorial" from the Help 
menu, if it is the first time they have used the program, they are prompted 
with a panel that tells them that because the tutorial is interactive, they 
should choose a location to save a copy. The app then copies the tutorial from 
inside the application bundle to the specified path (and saves the specified 
path in the defaults so that the next time the user selects Help > Tutorial it 
will open straight up without the prompt, unless it has been deleted).

This works well for most users... Unless they are using a non-admin account. In 
this case, it seems that the tutorial file inside the app bundle doesn't have 
the correct file permissions to get copied out of the app bundle at all, so 
NSFileManager's copyPath:toPath:handler: fails in the attempt.

One solution is for me to use BatChmod on the tutorial file to ensure that the 
tutorial file and all its contents (my file format is a package format, which 
complicates things - i.e. all of the package contents also need the correct 
permissions) have the correct permissions for everyone - read, write, execute. 
However, I was hoping that there was a more elegant solution in code in case I 
make an amendment to the tutorial file and forget to BatChmod it before a 
release at some point in the future.

Or, if there is a better solution to this sort of thing altogether, I'd love to 
hear it.

Many thanks in advance and all the best,
Keith


      
_______________________________________________

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

This email sent to [EMAIL PROTECTED]

Reply via email to