On 1 March 2012, Apple will require all apps in its App Store to be sandboxed; should you remove your app to maintain its experience?
Australian software-development company Atlassian has made the decision to remove its SourceTree software from the Mac App Store, and revert back to direct downloads, due to restrictions imposed by Apple's edict that all App Store applications will run be run sandboxed from 1 March.
Steve Streeting, SourceTree creator and now Atlassian employee, wrote in a blog post that SourceTree would be removed to avoid the new restrictions and maintain the current user experience.
SourceTree is a Mac client for Subversion, Git and Mercurial version-control systems, and, as such, needs access to parts of the file system that the new sandbox would prevent. A feature that seems quite trivial in current systems, the ability to cut and paste paths to files and folders into a textbox, is crippled in the new sandbox, as the user can only give access to a file by dragging and dropping, or by a file dialog.
It manifests itself by changing the way in which the program currently handles the ability to suggest a default destination for project cloning. This is currently based on a default project folder and trailing part of the clone URL, but with the new sandbox, says Streeting, the user is forced to use the File Open panel, even if they are happy with the default.
This becomes doubly painful when the program is restarted.
"Under the sandbox, the file access [to] an application was previously granted based on user behaviour [and] is reset every time it starts up," wrote Streeting.
Streeting says that one of the differentiating features of SourceTree, the ability to bookmark an unlimited number of repositories, will be rendered completely useless if the program were to function inside the sandbox.
Then there's the situation with SSH keys; under the new sandboxed regime, SourceTree cannot automatically detect SSH keys in a satisfactory manner. With a sandbox, apps function within a chrooted jail that prevents unfettered access to the user's home directory — this means that SourceTree could no longer automatically detect whether SSH keys exist to utilise. A duplicate SSH store within the jail is one non-optimal solution to give the program access to the keys, as is the option to use the sandbox's migration tool."Although a 'migration' option is made available for the sandbox, its only option is to move files into the container; it cannot copy them. So when I tried to use this, for example, SSH configuration would work properly in SourceTree, but it had deleted the original files in the real user home directory, something that would be extremely unpopular (understatement!)," wrote Streeting.
"The bottom line is that competing products that aren't in the Mac App Store will give a better experience – if a user asks, 'how come
"To comply with the sandbox as it's currently specified, however, requires making SourceTree a worse experience for users."
After months of contemplation, Atlassian has made the decision that it will not be submitting any more updates to the Mac App Store after 1 March.
It's an interesting trade-off that Atlassian finds itself in. Does it try to bend itself into Apple's sandbox and reap the benefits of convenience and following Apple's preferred application-delivery mechanism? Or does it go alone, and wait until the sandbox is able to complete the operations it needs?
Clearly, Atlassian has made its choice in this regard, and it's an option that makes sense for applications that lie outside the media creation/consumption or gaming paradigm that the sandbox services.
For developers currently working with the sandbox, it is of note that Atlassian decided not to use temporary exceptions in order to avoid having to justify its existence at every App Store application review, and, at some future time, the temporary exceptions will disappear. Whether a permanent replacement will ever be created is unknown.
Yet again, Apple's lack of transparency is not helping. Developers are facing a regression of features in order to comply with the requirements of the sandbox; a road map would be able to alleviate some of the concerns over missing functionality.
At least Apple has locked itself into yearly release cycles for OS X — if you are facing the same concerns as SourceTree, I hope you have better luck with the sandbox's functionality in 12 months.
It's a strange place when disregarding Apple's prescription for OS X gives your app a better user experience.