SparkLabs Blog.

The latest news and releases.


Viscosity and the App Stores

Both the iOS and Mac App Stores present a compelling experience to end-users, yet to date Viscosity is unavailable on both of them. Not a day goes by without an email arriving in our inbox asking when we plan on making an iPhone version, and more recently, asking when Viscosity will be available on the Mac App Store. So rather than continue to answer these requests individually, we thought putting up a blog post answering the issue in depth would be a good idea. However just a warning: unfortunately the news isn't good!

Mac App Store

Like other Mac developers we were initially hesitant to submit Viscosity due to some of the App Store policies (no trial period, no discounted upgrade pricing, support, and so forth), but there is no question that the App Store makes installing software much easier for end users. Ultimately we think it will become the main method Mac users will use to find software, so we made the decision to add Viscosity to the Mac App Store if we could. However we can't.

First a bit of background information. When you first run Viscosity is asks for admin rights (or "root" for the *nix folks). This is necessary so Viscosity can create a network interface for your connection/s, setup your DNS servers, and setup the correct routes for your remote network (among other things). Ultimately it doesn't seem like this should prevent an application from appearing on the App Store. After all, the review process should prevent apps that want admin rights for a nefarious purpose, and there are many, many existing Mac applications that require elevated rights so they can integrate with the system. However point 2.27 of the Mac App Store Review Guidelines forbids this:

Apps that request escalation to root privileges or use setuid attributes will be rejected

As you can see, there isn't much in the way of wiggle room there. While we believe we can work around other restrictive points, unfortunately point 2.27 is pretty much a show stopper. We can only hope that Apple change this rule in the future.

iOS App Store

For a long time now we've been getting emails asking us for an iOS version of Viscosity on the App Store. It's something we'd absolutely love to give you guys however unfortunately, like the Mac App Store, there are a few rules preventing such a release.

The two most notable clashes with the App Store rules are that OpenVPN can't run in the background on iOS (without turning to private APIs), and Viscosity needs elevated rights to make the required network changes. While we hoped iOS 4's multitasking implementation would allow us to do the former, it is unfortunately not "true" multitasking. This leaves the conclusion that there is no hope of a Viscosity for iOS release through the App Store unless Apple make some of their private APIs public.

Another interesting point of possible contention has been raised by the recent removal of VLC from the iOS App Store. VLC was removed due to a possible clash between the GPL and the App Store's Digital Rights Management (DRM) scheme. OpenVPN is also licensed under the GPL, so if it was included in a similar fashion to VLC it may also clash. Luckily we don't believe such a clash would exist with Viscosity as the DRM is applied to the Viscosity app itself (not the OpenVPN binary) which is not licensed under the GPL. However the issue still deserves consideration.

While an official iOS App Store release may be out the window, we're still considering a release for jail-broken devices. We cooked up an experimental version some time ago, so we know it's something we can pull off. However at this stage we're focusing on other products (Viscosity for Windows and Viscosity Server). We will no doubt revisit this option at a later date, so if it's something you'd like to see us focus on make sure you let us know via the forums, Twitter or email!

Conclusion

So as discussed above, Viscosity will not be appearing on either App Store due to policies outside our control. We'd love to release Viscosity for both, so we'll be keeping up dialog with Apple in the hope of a policy change that will allow Viscosity to be submitted. We'll continue to support purchasing Viscosity through our website (and you can even try it out for free for 30 days!) and we hope you will continue to enjoy using it (Mac App Store or not)!