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

kquis 发布于 2018-04-26 iphone 最后更新 2018-04-26 09:26 1125 浏览

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

已邀请:

znon

赞同来自:

目前,目前唯一可用于访问iPhone SDK的语言是C/C++,Objective C和Swift。 没有技术上的原因,为什么这种情况在未来不会改变,但我不会在短期内屏住这种情况。 也就是说,Objective-C和Swift真的不是太可怕......

2016 edit

Javascript with NativeScript framework is available to use now.

oest

赞同来自:

由于Jay Freeman(saurik)的出色工作,您也可以在iPhone上使用PyObjC。请参阅iPhone Applications in Python。 请注意,目前这需要越狱iPhone。

nea

赞同来自:

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

sut

赞同来自:

你可以用PyObjC做这个,当然还有越狱手机。但是如果你想把它加入App Store,他们不会允许它,因为它“解释代码”。但是,您可能可以使用Shed Skin,但我不知道有人这样做。尽管如此,我想不出有什么好的理由,因为你失去了动态类型,并且不妨使用ObjC。

zrerum

赞同来自:

iPhone框架和兼容性方面的半重要支持意识到iPhone开发的唯一重要“外部”语言是MonoTouch,这是一种用于在iPhone上开发的C#/ .NET环境。

peum

赞同来自:

是的你可以。你用tinypy编写你的代码(这是Python的限制),然后用tinypy将它转换为C++,最后用XCode编译成本地iPhone应用程序。 Phil Hassey发布了一款名为Elephants的游戏!使用这种方法。这里有更多细节, http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/

quo_et

赞同来自:

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

lest

赞同来自:

从技术上讲,只要解释代码不被下载(不包括JavaScript),应用程序可能会被批准。 Rhomobiles“Rhodes”框架就是这样做的,它捆绑了移动Ruby,Rails的一个轻量级版本以及通过应用商店发布的应用。因为解释器和解释的代码都被封装到最终的应用程序中 - 苹果公司并不觉得它令人反感。 http://rhomobile.com/products/rhodes/ 即使在最新的苹果新闻发布后 - 应用程序商店中仍然可以使用rhodes应用程序(移动ruby)。如果有愿意的开发人员社区,我很难相信tinyPy或pyObjC找不到地方。

det

赞同来自:

看起来现在开发人员可以这样做: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.

mneque

赞同来自:

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

bquos

赞同来自:

是的,现在你可以用Python开发适用于iOS的应用程序。 有两种框架可能需要结账:KivyPyMob。 请考虑this question的答案,因为它们比这个更新。

ha

赞同来自:

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