我的应用程序需要使用仅适用于Python和Ruby的库.根据我的理解,Apple允许Ruby在iPhone上运行,只要用户不能执行任意代码(Rhomobile使用Ruby).
如何将Ruby / Python与我的应用程序捆绑在一起,从我的Obj-C代码调用函数,并以C或Obj-C格式获取结果(字符串)?
解决方法:
你不能.新的SDK协议prohibits using original languages other than C, C++, or Objective-C和SDK协议一直禁止动态解释代码.关于如何强制执行这些规则存在一些含糊之处,但为了安全起见,最好避免使用其他语言,直到解决问题为止.
编辑:另外,据我所知,目前没有技术方法可以在iPhone上运行Python,如this question所示.我听说过在iPhone应用程序中嵌入Lua,而不是Python.您可以执行Python with a jailbroken iPhone,但不能通过应用商店执行.
根据this question,Ruby的情况几乎一样糟糕.iPhone没有附带Ruby解释器,compilers还有很长的路要走. Rhomobile的工作原理是将解释器和框架与可执行文件打包在一起,我非常怀疑它是否会使它超越新的SDK协议.如果你真的想使用Ruby,Rhomobile可能是最好的选择(因为实现你自己的翻译可能会做很多工作,同样不太可能被批准).目前这是一个相当令人沮丧的景象 – 我们最希望的是MacRuby最终将会发挥作用,Apple将批准它.不过,这还有很长的路要走.
编辑2:我刚刚发现了大约tinypy,这可能适用于Python.我怀疑它会运行真正的库.