I ended up creating a 64-Bit adaptation of @Thomas Tempelmann’s Receipt validation code, which I then modified to suit my needs. It will have to be completely re-written as all of the API has been depreciated, so we don’t know when it won’t work.
The code is available from the following link.
The main things to worry about when shipping on the Mac App Store
#1 As Michel pointed out; you can only access files in either the “Application Support” or the Temp folder, all other files require a open or save dialog. There are some exceptions, such as access to the pictures folder, movies… Do not be tempted to give your application access the root directory; this will result in rejection.
#2 AppleScript; avoid it if you can. Trying to script Finder, System Events or the Terminal will result in Rejection. Some apps need to use new Entitlements for Apple Script, while others have to use old Entitlements. App Wrapper does it’s best to figure out which one an app should be using.
#3 Ensure your own sales mechanism and update mechanism are disable for the App Store. Apple’s don’t even like you informing customers that there is a new version available (although there are ways around this).
#4 You can’t sell things outside of the app store, in your app store application (unless you’re a big enough company; at which point you can pretty much do what the fuck you like).
#5 Pity the reviewers, I got pretty irate about some of the stupid rejections I’ve had (Couldn’t ship a V2 app because it was too similar in name and function to a v1). Those people have a negative job; which is to find any little reason as to why your app can’t be there.
#6 If you’ve got money, go to WWDC, meet the App Store team. I’ve heard that if you get on their good side, you can become a priority case, which means less rejections and also your apps get reviewed quicker. I’ve heard this twice from two different developers.
#7 This great community we have here; are your biggest allies. Anything you have trouble with or just questions; we collectively the developers of Xojo will know or know where to find out
#8 Application Restoration; if you want to maintain a Recent items list or auto-reopen documents for the user. You’ll need special code; I have written the “Sandbox Kit” for this purpose. http://www.ohanaware.com/sandboxkit/
Thanks Michel, that certainly explains the smell and leathery skin texture