*-apple-tvos

Apple tvOS 目标平台。

层级:3

  • aarch64-apple-tvos:Apple tvOS 在 ARM64 架构上。
  • aarch64-apple-tvos-sim:Apple tvOS 模拟器在 ARM64 架构上。
  • x86_64-apple-tvos:Apple tvOS 模拟器在 x86_64 架构上。

目标平台维护者

要求

这些目标平台是交叉编译的,并且需要相应的 tvOS SDK (AppleTVOS.sdkAppleTVSimulator.sdk),由 Xcode 提供。要构建 ARM64 目标平台,需要 Xcode 12 或更高版本。

SDK 的路径可以使用通用的 SDKROOT 环境变量传递给 rustc

操作系统版本

支持的最低版本是 tvOS 10.0,尽管您实际可以定位的最低版本可能比这更新,例如由于 Xcode 和您的 SDK 的版本。

可以通过更改部署目标来提高每个二进制文件的版本。 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", "aarch64-apple-tvos-sim"]

使用不稳定的 -Zbuild-std 和 nightly Cargo 也可能有效。

构建 Rust 程序

如果 rustc 在构建时支持这些目标平台,则可以通过指定 --target 来为这些目标平台构建 Rust 程序。例如

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

测试

目前不支持运行 Rust 或标准库测试套件。测试主要通过手动完成,将静态库构建嵌入到从 Xcode 或模拟器调用的应用程序中。

希望将来有可能改进这一点。