As of June 1st this year all new apps on the Mac Appstore require sandboxing. Sandboxing means that each app is run inside it’s own quarantined space to make sure if something goes wrong then the problem is contained. For a lot of apps this will be sufficient, but for apps that let you do really special stuff, this is the thing that kills them.
Currently the sandbox only lets an app do a handful of things:
– Create network connections (accessing the internet)
– Access the camera/microphone
– Access USB data
– Communicate with printers
– Use address book, location and calendar data
– Access user’s music, movies, pictures and download directories
– Allow the user to choose any folder on the system for the app to access
A lot of great apps do more than this, and take use of the Accessibility and ScriptingBridge frameworks (provided by Apple) which will not work when an app is sandboxed.
It makes sense for Apple to force the sandbox on iOS apps because they are much more simple devices that don’t need to do much advanced stuff, but forcing this upon their Mac app store is just plain dumb, especially when the sandbox is very underdeveloped at this point.
I currently have an app on the Mac app store (Tube Controller) which lets you control YouTube running in Safari or Chrome by using the media keys on your keyboard (rewind, play/pause and fast forward). This app is now as good as dead (the current version will stay but I can no longer update it or fix bugs) until Apple either makes the sandbox optional or adds advanced functionality into it.
They had something so great and they butchered it.