Apple 的 iOS 开发者指南指出:
3.3.2 — 应用程序本身不得以任何方式安装或启动其他可执行代码,包括但不限于通过使用插件架构、调用其他框架、其他 API 或其他方式。除了由 Apple 的文档化 API 和内置解释器解释和运行的代码外,不得在应用程序中下载或使用任何解释代码。
假设允许在运行时下载数据(例如 XML 和图像,或游戏级别描述)(我的印象是?),我想知道他们在“数据”和“代码”之间划清界限。想象一个应用程序向用户提供交互式“演示”(例如调查)的场景。演示文稿不断添加到服务器,并且不同的用户可以使用不同的演示文稿,因此它们不能成为初始应用程序下载的一部分(这将是重点)。它们以 XML 格式描述,但是是交互式的,它们可能包含这种类型的条件分支(以伪形式显示以举例说明):
<options id="Gender">
<option value="1">Male</option>
<option value="2">Female</option>
</options>
<branches id="Gender">
<branch value="1">
<image src="Man" />
</branch>
<branch value="2">
<image src="Woman" />
</branch>
</branches>
当此 XML 在应用程序中被解释和“播放”时,上述内容将分两步呈现。首先显示一个选择屏幕,用户可以在其中单击两个选项(“男性”或“女性”)中的任何一个。接下来,将根据上一步中的选择[动态下载]并显示图像。
现在,从这里,很容易想象附加的标签,描述进一步的逻辑。例如,可以添加包含标签:
<loop count="3">
<options... />
<branches... />
</loop>
当然,这里的结果是选择屏幕/图像屏幕对将依次呈现三遍。
或者想象一些描述游戏关卡的格式。将其视为被动“数据”可能是很自然的,但如果它包括,比如说,用户可以通过的几个门道,并附有各种触发器、陷阱和点等 - 这与使用脚本(或者,实际上,解释代码) - 描述执行序列、选项及其条件响应?
假设数据的解释引擎已经存在于应用程序中,并且此类“演示文稿”只能在应用程序中使用(不能创建或编辑),这将如何违反 Apple 的 iOS 指南?从这个意义上说,XML 基本上不构成脚本语言吗(解释语言中的任何程序都不能用 XML 描述)?
如果专有脚本语言(参考上面使用的 XML)被严格沙盒化(他们怎么知道?)并且不能以任何方式访问操作系统(但能够下载内容 - 例如调查或游戏级别 - 动态以及上传结果 - 答案或分数 - 到创作服务器)?
线路在哪里?