このページでは、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_config
ターゲットで表される Xcode バージョンに設定されている限り、--xcode_version
フラグによってオーバーライドされます。
--xcode_config
を渡さない場合、Bazel はホストマシンで使用可能な Xcode バージョンを表す自動生成された XcodeVersionConfig
を使用します。デフォルトのバージョンは、利用可能な最新の 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
を渡します。