AppStore上的嵌入式脚本 - 使用Python,或者蜿蜒进入

本文关键字:或者 Python 使用 嵌入式 脚本 AppStore | 更新日期: 2023-09-27 18:30:48

我正在构建一个科学/教育应用程序,我需要提供高级用户脚本功能。 我的选择是:

  • 嵌入现有语言,如 Python 或 Lua
  • 或者用coco/R创建我自己的语言,例如

(最初我用 C# 构建,但稍后可能会移植到 iPad 和 Android 覆盖的 C++。每种方法都有其优点,但一个重要因素是我不想被应用商店拒之门外。苹果显然禁止运行解释代码的应用程序。我真的不明白这是如何定义的 - 当然任何应用程序都通过解释自己的数据结构来运行吗?我认为这是某种"当我们看到色情内容时我们知道色情内容"的定义,你不能让你的系统看起来太强大。如果是这种情况,我认为如果我构建自己的语言并且只传输活动语法树而不是脚本源代码,那么我就不太可能触发他们的警钟 - 它看起来像任何旧的数据结构。有谁知道这是对的吗?

AppStore上的嵌入式脚本 - 使用Python,或者蜿蜒进入

几年前,苹果放宽了许可证中的语言,允许Lua。它被用于大量的iOS游戏(包括愤怒的小鸟,所有EA游戏等)。事实上,App Store上有很多游戏是用Lua编写的,使用基于Lua的框架,如Corona或MOAI(如Crimson:Steam Pirates,Bungie航空航天资助的游戏,在App Store上排名#1几周)。还有像Codea这样的应用程序,这是一个Lua脚本环境,最终用户可以使用它直接在设备上构建游戏/玩具。Lua在iOS平台上非常受欢迎。

创建自己的语言将是荒谬的,IMO。Lua太好了,非常适合iOS:轻巧,快速,可破解,用户友好,易于嵌入和扩展等。但是,在将其集成到 C# 应用中时可能遇到问题。我真的不知道MonoTouch是如何工作的,但在桌面世界中,C#是托管代码,编译为字节代码,但Lua的API是本机代码。弥合这一差距是可以做到的,但需要做更多的工作。

简而言之,您可以使用Lua,而不必隐藏它。您不被允许做的是创建一个"元平台",用户基本上可以通过您的应用程序下载全新的应用程序(未经Apple审查)。

编辑:关于"我正在用C#构建,但以后可能会移植到iPad和Android的C++",你可能想看看MOAI。它是一个开源的跨平台(PC,Mac,iPad,Android,Chrome)框架,用C++编写,用于在Lua中编写游戏。可能会节省您从那里开始而不是稍后移植的时间。你可以直接在Lua中做几乎所有的事情,如果你遇到需要裸机性能或访问尚未通过Lua API公开的功能的事情,你可以用C或C++编写它。