Archive for June 12, 2014

Thursday, June 12, 2014 [Tweets] [Favorites]

Pythonista in App Store Peril

Ole Zorn quotes the App Store Review team:

If we do not receive an update within forty-eight hours, your app [Pythonista] may be removed from sale.

Apple itself takes it sweet time in responding, but Zorn is told he must neuter his app—highly regarded and in the store for years—within 48 hours or it will be removed from sale. As with Editorial, Apple claims that the app violates rule 2.8:

Apps that install or launch other executable code will be rejected.

According to Apple, formulas in Numbers and functions in PCalc are OK. So is JavaScript, as many apps embed a Web view or communicate with a server component via JSON. But reading XML files and executing Python code are not OK. Landon Fuller points out the absurdity and wonders about executing Python via JavaScriptCore.

All the apps in question are, of course, sandboxed, so this is not about security. And it’s not as if Pythonista is trying to be an app store within an app. It’s just a productivity app, in fact one of the primary examples of how iOS can be used for more than just content consumption. Federico Viticci (in 2012):

We’re in the early stages of iOS automation, but Pythonista, Launch Center Pro, and x-callback-url are indicating the path other developers should follow.

Pythonista shows that it’s possible to be a power user on iOS while playing by Apple’s rules.

Gabe Weatherhead writes to Tim Cook:

[Editorial and Pythonista are] the first apps I tout as examples of the vibrance of iOS and, I dare say, I love them.

Update (2014-06-13): Ole Zorn:

Just submitted Pythonista 1.5 within Apple’s 48h deadline. “Open in” menu integration is gone, I hope this is enough.

Rui Carmo:

If Pythonista is drummed out of the App Store, then iOS is useless to me as a platform.

Nick Heer:

As much as Apple is “opening up” and extending the functionality available to third-party developers, this kind of rein-tightening is a huge drawback for iOS developers, for two big reasons.

Update (2014-06-16): Ole Zorn:

So what was the problem Apple had with the previous version? Turns out, they didn’t like the Open in… menu integration I had added in 1.4 because that would allow you to import executable code from external sources. My theory is that this policy is in place to prevent apps that circumvent the App Store, e.g. by offering downloadable games that don’t go through Apple’s review (and revenue chain via in-app purchases).


I’m sad to see this feature go. It wasn’t just a convenient way to import scripts, it also enabled some pretty interesting automation workflows that could process the contents of pretty much any kind of file you could access on your iOS device.