*-apple-tvos

  • aarch64-apple-tvos
  • x86_64-apple-tvos

层级:3

Apple tvOS 目标

  • aarch64 上的 Apple tvOS
  • x86_64 上的 Apple tvOS 模拟器

目标维护者

要求

这些目标是交叉编译的。您需要适当版本的 Xcode 和 tvOS SDK (AppleTVOS.sdk) 和/或 tvOS 模拟器 SDK (AppleTVSimulator.sdk) 来构建工具链并针对这些平台。

据我所知,这些目标支持大多数(见下文)标准库,包括分配器,但它们非常新,尚未经过充分测试,因此可能存在各种错误。

理论上,我们支持回溯到 tvOS 7.0 版本,但您实际可以定位的最低版本可能比这更新,例如由于 Xcode 和 SDK 的版本。

与其他 Apple 目标一样,rustc 尊重 Xcode 用于配置此目标的常用环境变量,在本例中为 TVOS_DEPLOYMENT_TARGET

不完全支持的库功能

如前所述,支持“大多数”标准库,这意味着某些部分已知不支持。以下 API 目前已知缺少或支持不完整

  • std::process::Command 的 API 将返回错误,如果它以无法使用 posix_spawn 执行的方式配置 - 这是因为更灵活的基于 fork/exec 的方法在这些平台上被禁止,以支持 posix_spawn{,p}(这仍然可能会导致您被应用商店拒绝,因此很可能是仅限侧载的)。很难枚举发生这种情况的具体情况集(并且会很快过时),但在某些情况下,可以通过调整调用 Command 的方式来解决。

构建目标

可以通过在 config.toml 中为 rustc 构建启用这些目标来构建它们,例如添加

[build]
build-stage = 1
target = ["aarch64-apple-tvos", "x86_64-apple-tvos", "aarch64-apple-tvos-sim"]

cargo-Zbuild-std 下也可能用于定位它们。

构建 Rust 程序

注意:构建此目标需要相应的 TVOS SDK,如 Xcode 提供。

可以为这些目标构建 Rust 程序

$ rustc --target aarch64-apple-tvos your-code.rs
...
$ rustc --target x86_64-apple-tvos your-code.rs
...
$ rustc --target aarch64-apple-tvos-sim your-code.rs

测试

目前不支持在 tvOS 或模拟器上运行 Rust 或标准库测试套件。测试主要通过从 Xcode 或模拟器调用的静态库构建手动完成。

希望将来能够改进这一点。

交叉编译工具链和 C 代码

此目标可以从 x86_64 或 aarch64 macOS 主机交叉编译。

不支持其他主机进行交叉编译,但如果也提供所需的 Xcode SDK,则可能有效。