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

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

Can I write native iPhone apps using Python?

使用PyObjC,您可以使用Python编写适用于OS X的Cocoa应用程序。我可以使用Python编写本机iPhone应用程序吗?


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

请注意,目前这需要一部越狱的iPhone。


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

没有技术上的理由说明为什么将来这种情况不会改变,但我不会为短期内的情况屏住呼吸。

也就是说,Objective-C和Swift确实并不太吓人...

2016 edit

Javascript with NativeScript framework is available to use now.


现在看来这是开发人员可以做的事情:iOS开发人员协议昨天已更改,并且似乎已被修改为使在应用程序中嵌入Python解释器合法的方式:

第3.3.2节-口译员

旧的:

3.3.2 An Application may not itself install or launch other executable
code by any means, including without
limitation through the use of a
plug-in architecture, calling other
frameworks, other APIs or otherwise.
Unless otherwise approved by Apple in
writing, no interpreted code may be
downloaded or used in an Application
except for code that is interpreted
and run by Apple’s Documented APIs and
built-in interpreter(s).
Notwithstanding the foregoing, with
Apple’s prior written consent, an
Application may use embedded
interpreted code in a limited way if
such use is solely for providing minor
features or functionality that are
consistent with the intended and
advertised purpose of the Application.

新:

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. The
only exception to the foregoing is
scripts and code downloaded and run by
Apple’s built-in WebKit framework.


是的,可以。您使用tinypy(受限制的Python)编写代码,然后使用tinypy将其转换为C,最后使用XCode将其编译为本地iPhone应用程序。菲尔·哈西(Phil Hassey)发布了一款名为"大象"的游戏!使用这种方法。这是更多详细信息,

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


是的,如今您可以使用Python开发适用于iOS的应用程序。

您可能要签出两个框架:Kivy和PyMob。

请也考虑此问题的答案,因为它们比该问题更及时。


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

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


Pythonista具有"导出到Xcode"功能,可让您将Python脚本导出为构建独立iOS应用程序的Xcode项目。

https://github.com/ColdGrub1384/Pyto也值得研究。


iPhone SDK协议在是否允许您运行脚本语言(WebView的Javascript之外)方面也相当含糊。我的理解是,这没关系-只要您没有执行的脚本都是从网络上下载的(因此预安装和用户编辑的脚本似乎没问题)。

IANAL等


n


BeeWare是用于编写本机iOS的开源框架


从技术上讲,只要未下载ISN的解释代码(不包括JavaScript),该应用就可以获得批准。 Rhomobiles " Rhodes "框架可以做到这一点,将移动Ruby,轻量级的Rails和您的应用程序捆绑在一起,以便通过应用程序商店进行分发。因为解释器和解释后的代码都打包到了最终应用程序中,所以Apple认为它不令人反感。

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

即使在最新的Apple新闻发布之后,Rhodes应用程序(移动ruby)仍然可以在应用程序商店中使用。我很难相信,如果有一个愿意的开发人员社区,tinyPy或pyObjC找不到位置。


您可以使用PyObjC,当然也可以使用越狱的手机。但是,如果您希望将其放入App Store,则他们将不允许使用它,因为它可以"解释代码"。但是,尽管我不知道有人这样做,但是您可能可以使用Shed Skin。我无法想到这样做的任何正当理由,因为您丢失了动态类型输入,并且不妨使用ObjC。


我认为这是不可能的,但是最近我听说了PyMob,这似乎很有趣,因为这些应用程序是用Python编写的,最终输出是各种平台(iOS的Obj-C,Android的Java等)的本机源代码。 。这当然是非常独特的。该网页对其进行了更详细的说明。

我还没有试过,但是很快就会看到。


在框架和兼容性方面,我所知道的唯一对iPhone开发具有重要意义的"外部"语言是MonoTouch,它是在iPhone上进行开发的C#/。NET环境。 >


推荐阅读