本页包含可帮助您使用 Bazel 构建 macOS 和 iOS 项目的资源。其中包含指向教程、构建规则和其他特定于使用 Bazel 为这些平台构建和测试的信息的链接。
使用 Bazel
以下资源可帮助您在 macOS 和 iOS 项目中使用 Bazel:
迁移到 Bazel
如果您目前使用 Xcode 构建 macOS 和 iOS 项目,请按照迁移指南中的步骤开始使用 Bazel 构建这些项目:
Apple 应用和新规则
注意:创建新规则适用于高级 build 和测试场景。 开始使用 Bazel 时不需要它。
以下模块、配置 fragment 和提供程序将帮助您在构建 macOS 和 iOS 项目时扩展 Bazel 的功能:
模块:
配置 fragment:
提供方:
Xcode 选择
如果您的 build 需要 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
属性是 available_xcodes
目标(包含远程可用的 Xcode 版本),并且其 local_versions
属性是 available_xcodes
目标(包含本地可用的 Xcode 版本)。对于 local_versions
,您可能需要使用自动生成的 @local_config_xcode//:host_available_xcodes
。默认 Xcode 版本是最新且相互可用的版本(如果有),否则为 local_versions
目标的默认版本。如果您希望使用 local_versions
默认值作为默认值,可以传递 --experimental_prefer_mutual_default=false
。