基于我看到的几个问题:
似乎很明显,应用程序不允许在启动时“自我更新”代码(或通过应用程序内的其他机制),因为新代码是提交到应用程序商店的应用程序的一部分。
但是,有很多应用程序确实会在启动时执行自动更新(例如,这个流行的游戏在第一次启动时会下载数百 MB) - 似乎这种类型的东西可以用于资源 - 只要下载是数据/resources - 不会改变编译代码的东西。
从技术上讲,应用程序资源包中包含的 Javascript 可以被视为资源,因此自动更新任何包含的 Javascript 是安全的。另一方面,Javascript 可以被视为“代码”,因为它由 Webkit(在 a 中UIWebView
)解释并执行。如果这算作代码,人们甚至可以走极端,创建一些解释器,根据自动更新到应用程序的 xml 文件(很容易被视为资源)的内容来运行应用程序中包含的命令。这算作“代码”吗?
所以,我正在寻找答案的主要问题:
- “资源”和“代码”之间的界限到底在哪里?“代码”是否仅表示“已编译的 Objective-C”?
- 是否有任何已知的已接受应用程序执行此类操作的示例?
此外,由于我确信它会被问到,我想要在本地下载和执行 javascript 而不是一直访问远程站点的主要原因是性能/离线功能。