d7s*_*rai 18 iphone app-store ios
Apple的iOS开发人员指南声明:
3.3.2 - 应用程序本身不能通过任何方式安装或启动其他可执行代码,包括但不限于使用插件体系结构,调用其他框架,其他API或其他方式.除了由Apple的Documented 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>
Run Code Online (Sandbox Code Playgroud)
当在应用程序中解释和"播放"此XML时,上述步骤将分两步呈现.首先显示选择屏幕,其中用户可以点击两个选项中的任何一个("男性"或"女性").接下来,将[动态下载]图像并根据上一步骤中的选择进行显示.
现在,从中可以很容易地想象出其他标签,仍然可以进一步描述逻辑.例如,可以添加包含标记:
<loop count="3">
<options... />
<branches... />
</loop>
Run Code Online (Sandbox Code Playgroud)
结果是,当然,选择屏幕/图像屏幕对将顺序呈现三次.
或者想象一下描述游戏中某个关卡的格式.将自然视为被动"数据"也许很自然,但如果它包括,例如,用户可以通过的几个门道以及附加到它们的各种触发器,陷阱和点等等 - 与使用脚本(或实际上是解释代码) - 描述执行顺序,选项及其条件响应?
假设数据的解释引擎已经存在于应用程序中并且此类"演示文稿"只能在应用程序中使用(不创建或编辑),那么这将如何影响Apple的iOS指南呢?在这种意义上,XML基本上不构成脚本语言(解释性语言中的任何程序都不能用XML描述)吗?
如果专有的脚本语言(参考上面使用的XML)是严格的沙箱(他们怎么能告诉?)并且没有以任何方式访问操作系统(但能够下载内容 - 如调查或游戏),这样可以吗?级别 - 动态以及上传结果 - 答案或分数 - 到创作服务器)?
线路在哪里?
截至 WWDC 2017 的更新
现在明确允许诸如下面提到的 Codea 之类的编程工具下载代码。在App Store的准则目前说(重点煤矿):
2.5.2应用程序应在其bundle中自成一体,不得在指定的容器区域外读取或写入数据,也不得下载、安装或执行代码,包括其他应用程序。旨在教授、开发或测试可执行代码的应用程序可以在有限的情况下下载代码,前提是此类代码不用于其他目的。此类应用程序必须使应用程序提供的源代码完全可由用户查看和编辑。
还有这条推文引用了有关宽松条款的更多细节。
原来的
您的解释下载是否允许用户编写无限循环或递归?
Apple 允许 Javascript,因为它们提供了解释器并且可以杀死您的代码。我有一种感觉,我读过它有 10 秒的限制,但我在网站上搜索了几分钟就找不到它。(是的,我自己设置的回答超时时间开始了。)
如果你所做的是声明性的并且不允许在解释器中出现明显的循环,我认为你是非常安全的。
我还将避免在 Apple 可见的任何描述中使用“解释器”一词,包括公开讨论。也许“解析器”会更安全。
Codea 已经在它们的 Lua 环境中沿着这些定义的边缘滑行并且无法下载代码。他们不得不删除将新包下载为“.codea”文件的功能。
我认为苹果的意思是你的应用程序不应该依赖于另一个模块、编译的产品或可执行文件才能工作,这些模块、编译的产品或可执行文件将从网站/服务器下载,并且编译的附加组件未经苹果审查。
基本上,当我问类似的问题时,他们告诉我这样的话:“如果您的应用程序将下载另一个可执行的编译代码,例如 ftp 下载器、密钥解密工具或此类未经我的 Apple 批准的东西。您可以下载数据或不代表应用程序的文件(例如 XML、HTML、PDF 文件、图像)。
归档时间: |
|
查看次数: |
4900 次 |
最近记录: |