我可以使用Python编写本机iPhone应用程序吗?

使用PyObjC ,您可以使用Python为OS X编写Cocoa应用程序。我可以使用Python编写本机iPhone应用程序,如果可以,如何编写?

目前,目前唯一可用于访问iPhone SDK的语言是C / C ++,Objective C和Swift。

没有技术上的原因,为什么在将来这不能改变,但在短期内我不会屏住呼吸。

也就是说,Objective-C和Swift真的不是太可怕…

2016年编辑

带有NativeScript框架的Javascript现在可以使用。

由于Jay Freeman(saurik)出色的工作,你也可以在iPhone上使用PyObjC。 请参阅Python中的iPhone应用程序 。

请注意,这需要一个越狱的iPhone。

是的你可以。 你用tinypy编写你的代码(这是Python的限制),然后用tinypy把它转换成C ++,最后用XCode编译成本地的iPhone应用程序。 菲尔·哈西已经出版了一个名为大象的游戏! 使用这种方法。 这里有更多的细节,

http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/

看来现在开发人员可以这么做了:iOS开发人员协议昨天发生了变化,似乎已经得到了很好的certificate,使得在你的应用程序中embedded一个Python解释器是合法的:

3.3.2节 – 解释

旧:

3.3.2应用程序不得以任何方式自行安装或启动其他可执行代码,包括但不限于通过使用插件架构,调用其他框架,其他API或其他方式。 除非Apple以书面forms另行批准,否则不得在应用程序中下载或使用解释代码,但由Apple的Documented API和内置解释程序解释和运行的代码除外。 尽pipe有上述规定,但在Apple事先书面同意的情况下,如果应用程序仅用于提供与本应用程序的预期目的和广告目的相一致的次要function或特性,则应用程序可以以有限的方式使用embedded式解释代码。

新:

3.3.2应用程序不得下载或安装可执行代码。 如果所有脚本,代码和解释程序都打包在应用程序中,而不是下载,那么解释的代码只能在应用程序中使用。 上述唯一的例外是脚本和代码下载并运行苹果的内置WebKit框架。

对iOS开发人员协议的更新意味着只要您符合开发人员指南,就可以使用任何您喜欢的内容。 限制开发人员可用于iOS开发的第3.3.1节已完全删除。

来源: http : //daringfireball.net/2010/09/app_store_guidelines

是的,现在您可以使用Python为iOS开发应用程序。

有两个框架,你可能想签出: Kivy和PyMob 。

请考虑这个问题的答案,因为它们比这个更新。

Pythonista具有导出到Xcodefunction,允许您将Python脚本导出为构build独立iOS应用程序的Xcode项目。

iPhone SDK协议对于是否允许运行脚本语言(在WebView的Javascript之外)也相当模糊。 我的阅读是,只要没有你执行的脚本是从networking上下载的(所以预安装和用户编辑的脚本似乎没问题)。

IANAL等等

从技术上讲,只要解释的代码不被下载(不包括JavaScript),应用程序可能被批准。 Rhomobiles“Rhodes”框架就是这样做的,捆绑移动Ruby,一个轻量级的Rails版本,以及通过应用程序商店分发的应用程序。 因为解释器和解释的代码都被封装到最终的应用程序中 – 苹果公司并不觉得这是令人反感的。

http://rhomobile.com/products/rhodes/

即使在最新的苹果新闻稿发布之后,应用程序商店仍然可以使用rhodes apps(mobile ruby​​)。 我很难相信,如果有一个愿意的开发者社区,tinyPy或者pyObjC就不会find一个地方。

你可以用PyObjC做这个,当然还有越狱手机。 但如果你想进入App Store,他们将不会允许它,因为它“解释代码”。 但是,你也许可以使用棚皮肤 ,虽然我不知道有人这样做。 我想不出有什么好的理由可以做到这一点,因为你失去了dynamicinput,不妨使用ObjC。

我认为这是不可能的,但我最近听说PyMob,这很有趣,因为这些应用程序是用Python编写的,最终的输出是各种平台(Obj-C for iOS,Android for Java等)的本地源代码。 这当然是非常独特的。 这个网页更详细地解释它。

我还没有给它一个镜头,但会尽快看看。

MonoTouch是iPhone上开发的唯一重要的“外部”语言,我知道在框架和兼容性方面的半重要支持是MonoTouch ,这是一个在iPhone上开发的C / .NET环境。