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 XMLfiles 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.

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.