Apple アプリと Bazel

このページでは、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 バージョンに設定されている場合に限ります。--xcode_config

--xcode_config を渡さない場合、Bazel はホストマシンで使用可能な Xcode バージョンを表す自動生成された XcodeVersionConfig を使用します。デフォルトのバージョンは 使用可能な最新の Xcode バージョンです。これはローカル実行に適しています。

リモートビルドを実行する場合は、--xcode_configxcode_config ターゲットに設定します。このターゲットの versions 属性は、リモートで使用可能な xcode_version ターゲットのリストであり、default 属性はこれらの xcode_versionsのいずれかです。

動的実行を使用する場合は、--xcode_configxcode_config ターゲットに設定します。このターゲットの remote_versions 属性は、リモートで使用可能な Xcode バージョンを含む available_xcodes ターゲットであり、 local_versions 属性は、ローカルで使用可能な Xcode バージョンを含む available_xcodes ターゲットです。local_versions には、 自動生成された @local_config_xcode//:host_available_xcodes を使用することをおすすめします。デフォルトの Xcode バージョンは、相互に使用可能な最新バージョンです。存在しない場合は、 ターゲットのデフォルトになります。local_versionslocal_versions デフォルトをデフォルトとして使用する場合は、--experimental_prefer_mutual_default=false を渡します。