本页包含一些资源,可帮助您使用 Bazel 构建 macOS 和 iOS 项目。它链接到了一个教程、构建规则以及其他特定于 使用 Bazel 为这些平台构建和测试的信息。
使用 Bazel
以下资源将帮助您在 macOS 和 iOS 项目中使用 Bazel:
迁移到 Bazel
如果您目前使用 Xcode 构建 macOS 和 iOS 项目,请按照迁移指南中的步骤 开始使用 Bazel 构建这些项目:
Apple 应用和新规则
注意:创建新规则适用于高级构建和测试场景。 如果您刚开始使用 Bazel,则无需创建新规则。
在构建 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。