使用PyObjC,您可以使用Python为OS X编写Cocoa应用程序。我可以使用Python编写本机iPhone应用程序吗?如果是,如何编写?
答案 0 :(得分:53)
由于Jay Freeman(saurik)的出色工作,您也可以在iPhone上使用PyObjC。请参阅iPhone Applications in Python。
请注意,目前这需要越狱的iPhone。
答案 1 :(得分:35)
目前还没有,目前唯一可用于访问iPhone SDK的语言是C / C ++,Objective C和Swift。
没有技术上的理由说明为什么将来不会改变,但我不会在短期内屏住呼吸。
那就是说,Objective-C和Swift真的不太可怕......
2016年编辑
现在可以使用带有NativeScript框架的Javascript。
答案 2 :(得分:23)
是的,你可以。您在tinypy(受限制的Python)中编写代码,然后使用tinypy将其转换为C ++,最后使用XCode将其编译为本机iPhone应用程序。 Phil Hassey发布了一款名为Elephants的游戏!使用这种方法。这里有更多细节,
http://www.philhassey.com/blog/2009/12/23/elephants-is-free-on-the-app-store/
答案 3 :(得分:23)
现在看来这是开发人员可以做的事情:iOS开发者协议昨天发生了变化,并且似乎已经被修改,以便在您的应用程序中嵌入Python解释器合法:
第3.3.2节 - 解释器
<强>旧强>
3.3.2应用程序本身可能无法安装或启动其他可执行文件 任何方式的代码,包括没有 通过使用a的限制 插件架构,调用其他 框架,其他API或其他。 除非苹果公司另行批准 写作,没有解释代码可能 下载或在应用程序中使用 除了解释的代码 并由Apple的Documented API和 内置口译员。 尽管有上述内容,但仍有 Apple事先书面同意, 应用可能使用嵌入式 如果有限的解释代码 这种用途仅用于提供未成年人 功能或功能 符合预期和 申请的广告目的。
新强>
3.3.2应用程序可能无法下载或安装可执行代码。 解释的代码只能用于 应用程序,如果所有脚本,代码 和口译员包装在 申请而非下载。该 唯一的例外是上述情况 下载和运行的脚本和代码 Apple的内置WebKit框架。
答案 4 :(得分:21)
答案 5 :(得分:20)
iOS开发者协议的更新意味着您可以使用您喜欢的任何内容,只要您符合开发者指南即可。第3.3.1节限制了开发人员可用于iOS开发的内容,已完全删除。
答案 6 :(得分:8)
Pythonista具有导出到Xcode功能,允许您将Python脚本导出为构建独立iOS应用程序的Xcode项目。
答案 7 :(得分:5)
iPhone SDK协议对于您是否甚至被允许运行脚本语言(在WebView的Javascript之外)也相当模糊。我的阅读是没关系 - 只要您执行的脚本都没有从网络下载(因此预安装和用户编辑的脚本似乎没问题)。
IANAL等等。
答案 8 :(得分:2)
从技术上讲,只要未下载解释的代码(不包括JavaScript),该应用程序即可获得批准。 Rhomobiles“Rhodes”框架就是这样,捆绑移动Ruby,Rails的轻量级版本,以及通过app-store分发的应用程序。因为解释器和解释的代码都被打包到最终的应用程序中 - Apple没有发现它令人反感。
http://rhomobile.com/products/rhodes/
即使在最新的苹果新闻发布之后 - 罗德应用程序(移动红宝石)在应用程序商店仍然可行。如果有一个愿意参与的社区,我会发现很难相信tinyPy或pyObjC找不到位置。
答案 9 :(得分:1)
你可以使用PyObjC,当然是越狱手机。但是如果你想进入App Store,他们就不会允许它,因为它“解释代码”。但是,您可以使用Shed Skin,但我不知道有人这样做。我不能想到有任何理由这样做,因为你失去了动态类型,并且可能也使用ObjC。
答案 10 :(得分:1)
我认为之前不可能,但我最近听说过PyMob,这看起来很有趣,因为应用程序是用Python编写的,最终输出是各种平台的原生源代码(iOS的Obj-C,Android的Java等) 。这当然很独特。 This网页更详细地解释了它。
我还没拍过,但很快就会看一眼。
答案 11 :(得分:1)
BeeWare是用于编写本机iOS和Android应用程序的开源框架。
答案 12 :(得分:0)
在框架和兼容性方面,我所知道的iPhone开发唯一重要的“外部”语言是MonoTouch,这是一个用于在iPhone上进行开发的C#/ .NET环境。 / p>
答案 13 :(得分:0)
2019更新:
虽然Python-iOS开发相对不成熟,可能会阻止(afaik)您的应用具有本机UI和可以通过Apple支持的开发语言实现的功能,但Apple现在似乎允许将Python解释器嵌入本机Swift / Obj-C应用程序。
这支持直接从您的本机Swift / Obj-C代码导入Python库和运行Python脚本(甚至带有提供的命令行参数)。
我的公司实际上是在本机iOS应用程序中包装我们的基础结构(最初是用Python编写的)!它运行良好,并且可以通过客户端-服务器模型轻松实现各部分之间的通信。
如果您想在iOS应用https://github.com/beeware/Python-Apple-support/tree/3.6中尝试和运行Python脚本,Beeware会提供一个带有cookiecutter模板的不错的库。