Apple 应用和 Bazel

报告问题 查看源代码

本页面包含可帮助您使用 Bazel 构建 macOS 和 iOS 项目的资源。其中提供了教程、构建规则以及有关如何使用 Bazel 针对这些平台进行构建和测试的其他信息的链接。

使用 Bazel

以下资源可帮助您在 macOS 和 iOS 项目中使用 Bazel:

迁移到 Bazel

如果您目前使用 Xcode 构建 macOS 和 iOS 项目,请按照迁移指南中的步骤开始使用 Bazel 构建这些项目:

Apple 应用和新规则

注意:创建新规则适用于高级构建和测试场景。开始使用 Bazel 时您不需要它。

以下模块、配置 fragment 和提供程序可帮助您在构建 macOS 和 iOS 项目时扩展 Bazel 的功能

Xcode 选择

如果您的构建需要 Xcode,Bazel 会根据 --xcode_config--xcode_version 标志选择合适的版本。--xcode_config 会使用可用的 Xcode 版本集,如果未传递 --xcode_version,则会设置默认版本。只要 --xcode_version 标志设置为 --xcode_config 目标中表示的 Xcode 版本,此默认值就会被替换。

如果您未传递 --xcode_config,Bazel 将使用自动生成的 XcodeVersionConfig,代表宿主机上可用的 Xcode 版本。默认版本是最新的可用 Xcode 版本。这适用于本地执行。

如果要执行远程构建,则应将 --xcode_config 设置为 xcode_config 目标,其 versions 属性是远程可用的 xcode_version 目标的列表,并且其 default 属性是这些 xcode_versions 中的一个。

如果您使用的是动态执行,则应将 --xcode_config 设置为 xcode_config 目标,其 remote_versions 属性是包含远程可用 Xcode 版本的 available_xcodes 目标,其 local_versions 属性是包含本地可用 Xcode 版本的 available_xcodes 目标。对于 local_versions,您可能需要使用自动生成的 @local_config_xcode//:host_available_xcodes。默认 Xcode 版本是最新的互通版本(如果有),否则为 local_versions 目标的默认值。如果您希望将 local_versions 默认值用作默认值,可以传递 --experimental_prefer_mutual_default=false