Bazel チュートリアル: iOS アプリを作成する

<ph type="x-smartling-placeholder"></ph> 問題を報告する ソースを表示 夜間 · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

このチュートリアルでは、Bazel を使用してシンプルな iOS アプリを作成する方法について説明します。

学習内容

このチュートリアルでは、以下の方法について学習します。

  • Bazel と Xcode をインストールし、 サンプル プロジェクト
  • ソースコードを含む Bazel ワークスペースをセットアップします。 そのアプリの最上位のレベルを特定する WORKSPACE ファイルと、 ワークスペース ディレクトリ
  • WORKSPACE ファイルを更新して、必要なファイルへの参照を含めます。 外部依存関係
  • BUILD ファイルを作成する
  • Bazel を実行して、シミュレータと iOS デバイス用のアプリをビルドします。
  • シミュレータと iOS デバイスでアプリを実行する

環境の設定

まず、Bazel と Xcode をインストールしてサンプル プロジェクトを入手します。

Bazel をインストールする

インストール手順に沿って Bazel をインストールします。 確認します。

Xcode をインストールする

Xcode をダウンロードしてインストールします。 Xcode には、Bazel によるビルドに必要なコンパイラ、SDK、その他のツールが含まれています Apple アプリケーション。

サンプル プロジェクトを取得する

また、GitHub からチュートリアルのサンプル プロジェクトを取得する必要もあります。GitHub リポジトリには、source-onlymain の 2 つのブランチがあります。source-only ブランチ プロジェクトのソースファイルのみが格納されています。このモジュールでは、 作成します。main ブランチに両方のソースファイルが含まれている Bazel WORKSPACE ファイルと BUILD ファイルを完了しました。このプロジェクト内のファイルを使用して、 ブランチを開いて、チュートリアルのステップが完了したら、作業をチェックしてください。

コマンドラインで次のコマンドを入力して、source-only 内のファイルを取得します。 branch:

cd $HOME
git clone -b source-only https://github.com/bazelbuild/examples

git clone コマンドにより、$HOME/examples/ という名前のディレクトリが作成されます。この ディレクトリには、Bazel のサンプル プロジェクトがいくつか含まれています。このプロジェクトのプロジェクト ファイルは、 チュートリアルは $HOME/examples/tutorial/ios-app にあります。

ワークスペースを設定する

ワークスペースとは、ファイルの内容が 1 つ以上のソフトウェア プロジェクトのソースファイルと WORKSPACE ファイル および BUILD ファイル(Bazel がビルドに使用する命令を含む) ソフトウェアです。ワークスペースには出力ファイルへのシンボリック リンクも ディレクトリを作成します。

ワークスペース ディレクトリは、ファイル システム上の任意の場所に配置でき、 (ルートに WORKSPACE ファイルが存在する場合)。このチュートリアルでは、 ワークスペース ディレクトリは $HOME/examples/tutorial/ です。これにはサンプルが含まれています。 前のステップで GitHub リポジトリからクローンを作成したプロジェクト ファイル。

便宜上、$WORKSPACE 環境変数を設定して、 表示されます。コマンドラインで、次のように入力します。

export WORKSPACE=$HOME/examples/tutorial

WORKSPACE ファイルを作成する

すべてのワークスペースの最上位に WORKSPACE という名前のテキスト ファイルを配置する必要があります。 ディレクトリにあります。このファイルは空であるか、参照が含まれている可能性があります 必要な外部依存関係に ソフトウェアです。

ここでは、空の WORKSPACE ファイルを作成します。このファイルは、 ワークスペース ディレクトリを特定します。後のステップでファイルを更新し、 外部依存関係の情報が含まれています。

コマンドラインで次のように入力します。

touch $WORKSPACE/WORKSPACE
open -a Xcode $WORKSPACE/WORKSPACE

これにより、空の WORKSPACE ファイルが作成されて開きます。

WORKSPACE ファイルを更新する

Apple デバイス向けのアプリケーションをビルドするには、Bazel で最新のアプリケーションを pull する必要があります。 Apple のビルドルール GitHub リポジトリからデプロイできますこれを有効にするには、以下を追加します。 git_repository WORKSPACE ファイルに次のルールを追加します。

load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(
    name = "build_bazel_rules_apple",
    remote = "https://github.com/bazelbuild/rules_apple.git",
    tag = "0.19.0",
)

git_repository(
    name = "build_bazel_rules_swift",
    remote = "https://github.com/bazelbuild/rules_swift.git",
    tag = "0.13.0",
)

git_repository(
    name = "build_bazel_apple_support",
    remote = "https://github.com/bazelbuild/apple_support.git",
    tag = "0.7.2",
)

git_repository(
    name = "bazel_skylib",
    remote = "https://github.com/bazelbuild/bazel-skylib.git",
    tag = "0.9.0",
)

ソースファイルを確認する

次の場所にあるアプリのソースファイルを確認して、 $WORKSPACE/ios-app/UrlGet。ここでもこれらのファイルを見て アプリの構造に慣れるこれらを編集する必要はありません。 ソースファイルを指定します。

BUILD ファイルを作成する

コマンドライン プロンプトで、編集用に新しい BUILD ファイルを開きます。

touch $WORKSPACE/ios-app/BUILD
open -a Xcode $WORKSPACE/ios-app/BUILD

ルールの load ステートメントを追加する

iOS ターゲットをビルドするには、Bazel で GitHub リポジトリからビルドルールを読み込む必要があります 常にトリガーされるようにします。これらのルールをプロジェクトで使用できるようにするには、 次の load ステートメントを BUILD ファイルの先頭に追加します。

load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application")

必要なのは、objc_library ルールによって ios_application ルールが Bazel パッケージに組み込まれています。

objc_library ルールを追加する

Bazel には、Android Studio 用のアプリをビルドするために使用できるビルドルールがいくつか用意されています。 ダウンロードしますこのチュートリアルでは、最初に Bazel に指示する objc_library ルール アプリのソースコードと Xib ファイルから静的ライブラリをビルドする方法。その後 こちらの ios_application アプリケーション バイナリと .ipa バンドルのビルド方法を指示するルールです。

次のコードを BUILD ファイルに追加します。

objc_library(
    name = "UrlGetClasses",
    srcs = [
         "UrlGet/AppDelegate.m",
         "UrlGet/UrlGetViewController.m",
         "UrlGet/main.m",
    ],
    hdrs = glob(["UrlGet/*.h"]),
    data = ["UrlGet/UrlGetViewController.xib"],
)

ルールの名前 UrlGetClasses をメモします。

ios_application ルールを追加する

ios_application ルールはアプリケーション バイナリをビルドし、.ipa バンドル ファイルを作成します。

次のコードを BUILD ファイルに追加します。

ios_application(
    name = "ios-app",
    bundle_id = "Google.UrlGet",
    families = [
        "iphone",
        "ipad",
    ],
    minimum_os_version = "9.0",
    infoplists = [":UrlGet/UrlGet-Info.plist"],
    visibility = ["//visibility:public"],
    deps = [":UrlGetClasses"],
)

deps 属性が UrlGetClasses ルールの出力を参照する仕組みに注意してください。 先ほどの BUILD ファイルに追加したものが表示されます。

ファイルを保存して閉じます。BUILD ファイルと 完成した例 (GitHub リポジトリの main ブランチにあります)

アプリをビルドしてデプロイする

これで、アプリをビルドしてシミュレータにデプロイする準備が整いました。 iOS デバイスの場合。

ビルドされたアプリは $WORKSPACE/bazel-bin ディレクトリにあります。

このチュートリアル用に完成した WORKSPACE ファイルと BUILD ファイルは、次の場所にあります。 main ブランチ ご覧ください。自分の作業内容を完成したファイルと比較して、 その他のヘルプやトラブルシューティング

シミュレータ用のアプリをビルドする

現在の作業ディレクトリが Bazel ワークスペース内にあることを確認します。

cd $WORKSPACE

次に、次のコマンドを入力してサンプルアプリをビルドします。

bazel build //ios-app:ios-app

Bazel がサンプルアプリを起動し、ビルドします。ビルドプロセス中に、 出力は次のようになります。

INFO: Found 1 target...
Target //ios-app:ios-app up-to-date:
  bazel-bin/ios-app/ios-app.ipa
INFO: Elapsed time: 0.565s, Critical Path: 0.44s

ビルドの出力を確認する

.ipa ファイルとその他の出力は、 $WORKSPACE/bazel-bin/ios-app ディレクトリ。

シミュレータでアプリを実行してデバッグする

これで、iOS Simulator を使用して Xcode からアプリを実行できるようになりました。まず、 Tulsi を使用して Xcode プロジェクトを生成します

次に、Xcode でプロジェクトを開き、ランタイム スキームとして iOS Simulator を選択します。 [実行] をクリックします。

デバイス用アプリを作成する

iOS デバイスでインストールして起動するようにアプリをビルドするには、Bazel に以下が必要です。 そのデバイスモデルに適したプロビジョニング プロファイル。手順は次のとおりです。

  1. Apple デベロッパー アカウントに移動します。 ご利用のデバイスに適したプロビジョニング プロファイルをダウンロードします。詳しくは、 Apple のドキュメント をご覧ください。

  2. プロフィールを $WORKSPACE に移行します。

  3. (省略可)プロファイルを .gitignore ファイルに追加します。

  4. BUILD ファイルの ios_application ターゲットに次の行を追加します。

    provisioning_profile = "<your_profile_name>.mobileprovision",
    

デバイス用のアプリをビルドします。

bazel build //ios-app:ios-app --ios_multi_cpus=armv7,arm64

これにより、アプリがファットなバイナリとしてビルドされます。特定のデバイス向けにビルドするため ビルド オプションで指定します。

特定の Xcode バージョン向けにビルドするには、--xcode_version オプションを使用します。宛先 特定の SDK バージョン向けにビルドするには、--ios_sdk_version オプションを使用します。「 ほとんどの場合、--xcode_version オプションで十分です。

最低限必要な iOS バージョンを指定するには、minimum_os_version を追加します パラメータを BUILD ファイルの ios_application ビルドルールに追加します。

また、 Tulsiから コマンドラインではなく GUI を使用してアプリをビルドします。

デバイスにアプリをインストールする

デバイスにアプリをインストールする最も簡単な方法は、Xcode を起動して Windows > Devices コマンドを使用します。接続したデバイスを [Add](プラス記号)ボタンをクリックしてアプリを追加します。 「インストール済みのアプリ」ビルドした .ipa ファイルを選択します。

アプリがデバイスにインストールされない場合は、 BUILD ファイルで正しいプロビジョニング プロファイル(前の セクションを参照)。

アプリを起動できない場合は、アプリが プロファイルを指定します。Devices 画面の View Device Logs ボタンは、 Xcode は、何が問題であったかに関するその他の情報を提供する場合があります。

関連情報

詳しくは、 main ブランチ ご覧ください。