2016-11-14 60 views
8

iPad的Swift Playgrounds应用程序如何执行代码?Apple的Swift Playgrounds应用程序如何执行代码?

他们是否已经将LLVM工具链移植到ARM中,并且正在进行编译或者他们是否使用完全不同的方式来执行Swift代码?

我该如何完成iOS中类似的事情(即动态执行Swift代码)?

+0

请在使用它之前阅读苹果标签的描述。它明确标记为“不要使用”。 – rmaddy

回答

8

苹果的general-audiencedeveloper都没有说比Swift Playgrounds更“真实的代码”。但是可以自己验证(或者至少找到一些有力的证据),Swift Playgrounds的确可以运行完整的编译器工具链并生成原生的arm64代码。

提示:如果您在Mac上(或Windows上也下载了App Store应用程序,我猜?),您可以在本地文件系统中找到相应的.ipa文件。除非你是啤酒人,否则IPA只是包含应用程序包的zip存档,当您同步时,应用程序包将被安装到iOS设备上,因此您可以使用您喜爱的实用程序(包括macOS中的内置存档实用程序或unzip命令在线工具),并在他们的内部工作中徘徊一下。

如果您使用Swift Playgrounds进行此操作,您会发现Xcode中的SDK和工具链几乎完整的副本,其中包括一些特定于链接arm64体系结构的二进制文件的文件。 (你不会找到编译器&相关工具的任何命令行二进制文件,但运行LLVM工具链as libraries的部分并没有什么新的。)您也可以在Swift编译器的开放源代码中找到arm64 as a compiler-host architecture的一些证据。

所以,是的 - 缺少来自Apple的官方确认,它看起来像Swift Playgrounds在iOS设备上编译和运行本机代码。 (如果你仔细想一下,那么这样做没什么意义 - 在某种解释/模拟环境中运行Swift代码会导致性能下降,并可能让苹果公司的stated goal难以置信地提供对整个iOS工具箱的访问困难)。

并且不,third-party apps still can't do that。自2010年以来,第三方应用程序有可能使用提供嵌入式脚本环境的工具 - 游戏引擎使用该工具加速游戏设计开发,其他应用程序例如为PythonLua提供编码环境。但你可以想象,允许第三方应用程序编译和运行本机代码可能是一个安全噩梦...

相关问题