7 ms·
Looks like you have to compile it yourself (meaning you need a mac with Xcode) or install it through testflight. Although I'm surprised that it's even allowed o
by mikenew 8y ago
Looks like you have to compile it yourself (meaning you need a mac with Xcode) or install it through testflight. Although I'm surprised that it's even allowed on testflight. iOS doesn't allow you to execute code of any kind locally, which is why if you download a "learn python" app or something it has to send your code off to a server, execute it, and then send you back the result.
It's part of the reason why I recently moved away from iOS. Things like this are not supposed to exist, and you have to bend over backwards to make it work.
EDIT: Okay apparently this changed as of last year-ish? Looks like they have an exception in place for "a programming environment intended for use in learning how to program"* Regardless I think this kind of shell environment is still against the app store guidelines.
*https://www.theregister.co.uk/2017/06/07/apple_relaxes_developer_rules/ https://www.theregister.co.uk/2017/06/07/apple_relaxes_devel...
- Operyl 8y agoUh. There’s definitely a local python interpreter on the App Store. Pythonista3 is one, and Blink has one as well iirc.
- eptcyka 8y agoYes, and python isn't JIT'ed, so it really doesn't matter. It all boils down to write XOR exec memory.
- saagarjha 8y ago> iOS doesn't allow you to execute code of any kind locally Yes, it does. And as of recently you can even put apps like this on the App Store!
- gcb0 8y agoit took a decade to "be allowed" and is still extremely rudimentary, not to mention its a very fine line to the point that mozilla and google still wont invest in a browser engine port because apple already told in the past that simply running JS in the browser is enough to breach their policy. so please stop shouting like its common place. pythonista3 is a very controlled experiment as it is now. and it exploits a "tiny blessing" apple gave on the policy of running "user inputed source code" only!
- saagarjha 8y ago> mozilla and google still wont invest in a browser engine port The reason they won't do this is because they would't be able to JIT execute in their App Store app, which would make their browser seem unbearably slow.
- thangngoc89 8y agoWhile you're right that JIT isn't allowed on App Store, the issue with browser is you can only use built-in Safari webview for rendering websites. So all browsers on the App Store is a shell for Safari webview
- saagarjha 8y agoMy argument stands even if the "you must use WebKit" guideline is dropped. There's no point in writing a browser without WebKit because you just can't get good performance out of it.
- deleted 8y ago[deleted]
- jmarinez 8y agoThis isn't true either. https://github.com/jcs/endless https://github.com/jcs/endless
- raydev 8y agoThe Github page says it's a wrapper around UIWebView, so it's still a form of WebKit provided by iOS.
- amelius 8y agoI personally can't believe why Apple is still so popular in a place called "Hacker News".
- teilo 8y agoNot only can you run python on your iPhone, natively, with Pythonista, but you can call python scripts in Pythonista via Siri Shortcuts.
- mygo 8y ago“Siri deploy heroku”?
- saagarjha 8y agoSure, if you set it up that way!
- eddieroger 8y agoSiri Shortcuts can natively run SSH commands now, so that is actually a real possibility.
- sitharus 8y agoSince last year Apple have allowed executing user-input code providing the application is designed for teaching programming, https://twitter.com/palmin/status/871980560943636480 https://twitter.com/palmin/status/871980560943636480 has a summary. I can't link to the actual doc since that's behind a login. I'm not sure how this app would be allowed though.
- saagarjha 8y agoI make the argument that this application downloads and emulates code that is user-editable in the form of x86 binaries, which is the same as Pythonista or similar downloading and running Python code.
- sitharus 8y agoI like that argument. I wonder if Apple will.
- saagarjha 8y agoWell, it's on TestFlight already, so it's already passed one round of Apple's screening.
- tbodt 8y agoI don't think that was a very deep look at the app, especially since you have to know how to use a Linux prompt to understand that this app is an emulator.
- saagarjha 8y ago> I don't think that was a very deep look at the app I doubt it was, but my headcanon is that some poor App Store reviewer saw something that looked like code and grabbed a supervisor to do a deeper review.
- 8y ago
- saagarjha 8y ago> I think this kind of shell environment is still against the app store guidelines How so? I see no guidelines this app is violating.
- jek0 8y agoApple Developer Program License Agreement: 3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. 3.3.3 Without Apple’s prior written approval or as permitted under Section 3.3.23 (In-App Purchase API), an Application may not provide, unlock or enable additional features or functionality through distribution mechanisms other than the App Store or VPP/B2B Program Site. App Store Review Guideline 2.5.2 Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps. Educational apps designed to teach, develop, or allow students to test executable code may, in limited circumstances, download code provided that such code is not used for other purposes. Such apps must make the source code provided by the Application completely viewable and editable by the user.
- saagarjha 8y agoAll the scripts, code, and interpreters are packaged in the app bundle, since it's emulating x86 binaries. The "additional functionality" guideline is a bit loose because companies download patches (for A/B testing, bug fixes) all the time, which doesn't go through App Store review.
- saurik 8y ago"All the scripts, code, and interpreters" are not, in fact, packaged with the app as you are able to download arbitrary binaries using curl/wget or apk. That clause is very clear in both wording and intention, and this application does not follow it. As for the A/B testing that some companies do via sketchy runtime hooking, that has been a boundary case for a while that sometimes does cause you problems with Apple, but was vaguely OK if and only if the downloaded functionality was run through JavaScriptCore: the old version of this restriction essentially used to say "only if run in WebKit" (and I got manual clarification once that they were OK with JavaScriptCore, though I think they also made that explicit in the rules at some point).
- tebs1200 8y agoI'd imagine that the majority of people who want to run a terminal on iOS would have access to a Mac and Xcode, so even if this can't be released on the App Store, it could still be a useful project for many.
- saagarjha 8y agoYou would also need a paid developer account if you didn't want to constantly resign the app.
- wingerlang 8y agoOpening Xcode once per week and pressing CMD+R is likely not a big problem for the target audience either.