使用PyObjC,您可以使用Python编写适用于OS X的Cocoa应用程序。我可以使用Python编写本机iPhone应用程序吗?
使用PyObjC,您可以使用Python编写适用于OS X的Cocoa应用程序。我可以使用Python编写本机iPhone应用程序吗?
Answers:
目前尚不可用,目前仅有的可用于访问iPhone SDK的语言为C / C ++,Objective C和Swift。
没有技术上的原因为什么将来这种情况不会改变,但我不会在短期内屏住呼吸。
也就是说,Objective-C和Swift确实不是太吓人...
2016年
带有NativeScript框架的Javascript现在可以使用。
由于Jay Freeman(saurik)的出色工作,您也可以在iPhone上使用PyObjC。请参阅Python中的iPhone应用程序。
请注意,目前这需要越狱的iPhone。
看来现在这是开发人员可以做的事情:iOS开发人员协议昨天已更改,并且似乎已作了某种修改,以使在您的应用程序中嵌入Python解释器合法:
3.3.2节—口译员
旧:
3.3.2应用程序本身不能以任何方式自身安装或启动其他可执行代码,包括但不限于通过使用插件体系结构,调用其他框架,其他API或其他方式。除非Apple另行书面批准,否则不得下载或在应用程序中使用任何经解释的代码,除非由Apple的Documented API和内置解释器解释和运行的代码除外。尽管有前述规定,但在得到苹果公司事先书面同意的情况下,如果本应用程序仅用于提供与本应用程序预期用途和广告目的一致的次要特征或功能,则该应用程序可以有限的方式使用嵌入式解释代码。
新:
3.3.2应用程序不得下载或安装可执行代码。如果所有脚本,代码和解释器都打包在应用程序中而不下载,则解释的代码只能在应用程序中使用。前述的唯一例外是由Apple的内置WebKit框架下载并运行的脚本和代码。
是的你可以。您使用tinypy(受限制的Python)编写代码,然后使用tinypy将其转换为C ++,最后使用XCode将其编译为本地iPhone应用程序。菲尔·哈西(Phil Hassey)发布了一款名为“大象”的游戏!使用这种方法。这里有更多细节,
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
iOS开发者协议的更新意味着您可以使用任何您喜欢的东西,只要您符合开发者指南。完全删除了3.3.1节,该节限制了开发人员可以用于iOS开发的内容。
Pythonista具有“导出到Xcode”功能,可让您将Python脚本导出为构建独立iOS应用程序的Xcode项目。
2019更新:
尽管Python-iOS开发相对不成熟,可能会阻止(afaik)您的应用具有本机UI和可以通过Apple支持的开发语言实现的功能,但Apple现在似乎允许将Python解释器嵌入本机Swift / Obj-C应用。
这支持直接从本机Swift / Obj-C代码导入Python库和运行Python脚本(甚至带有提供的命令行参数)。
我的公司实际上是将我们的基础结构(最初用Python编写)包装在一个本地iOS应用程序中!它工作得很好,并且可以通过客户端-服务器模型轻松实现部件之间的通信。
如果您想尝试在iOS应用中运行Python脚本,这是Beeware的一个不错的库,带有cookiecutter模板:https : //github.com/beeware/Python-Apple-support/tree/3.6。
从技术上讲,只要未下载ISN的解释代码(不包括JavaScript),该应用就可以获得批准。Rhomobiles的“ Rhodes”框架正是这样做的,它将移动Ruby,轻量级的Rails和您的应用程序捆绑在一起,以便通过应用程序商店进行分发。因为解释器和解释后的代码都打包到了最终应用程序中,所以Apple认为它不令人反感。
http://rhomobile.com/products/rhodes/
即使在最新的Apple新闻发布之后,Rhodes应用程序(移动红宝石)仍然可以在应用程序商店中使用。我很难相信,如果有一个愿意的开发人员社区,tinyPy或pyObjC不会找到位置。
我认为这是不可能的,但是最近我听说了PyMob,这似乎很有趣,因为这些应用程序是用Python编写的,最终输出是各种平台(iOS的Obj-C,Android的Java等)的本地源代码。这当然是非常独特的。该网页对其进行了更详细的说明。
我还没有试过,但是很快就会看到。