我的应用程序需要使用仅适用于Python和Ruby的库。据我了解,只要用户不能执行任意代码,Apple就允许Ruby在iPhone上运行(Rhomobile使用Ruby)。

如何将Ruby/Python与应用程序捆绑在一起,如何从Obj-C代码中调用函数,然后以C或Obj-C格式返回结果(字符串)?

最佳答案

你不能新的SDK协议(protocol)prohibits using original languages other than C, C++, or Objective-C和SDK协议(protocol)始终禁止动态解释代码。对于如何执行这些规则存在一些歧义,但是为了安全起见,最好避免使用其他语言,直到解决问题为止。

编辑:另外,据this question,据我所知,目前没有在iPhone上运行Python的技术方法。我听说过将Lua嵌入到iPhone应用程序中,但是没有将Python嵌入。您可以执行Python with a jailbroken iPhone,但不能通过应用商店进行。

根据this question,Ruby的情况几乎一样糟糕。 iPhone不附带Ruby解释器,而compilers距离工作很遥远。 Rhomobile的工作方式是将解释器和框架与可执行文件打包在一起,我非常怀疑这将使其脱离新的SDK协议(protocol)。如果您真的想使用Ruby,Rhomobile可能是最好的选择(因为实现您自己的解释器可能会做很多工作,并且同样不太可能获得批准)。目前,这是一个令人沮丧的局面,我们最希望的是MacRuby最终可以运行,而Apple会批准它。不过,这还有很长的路要走。

编辑2:我也刚刚发现了tinypy,它可能适用于Python。我怀疑它会运行真正的库。

10-08 04:50