Android 用 React Native アプリの構築
重要
Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。
App Center では、React Native バージョン 0.34 以降を使用して React Native アプリをビルドできます。
最初の React Native Android アプリのビルドを開始するには、次の手順を実行する必要があります。
- リポジトリ サービス アカウント (GitHub、Bitbucket、VSTS、Azure DevOps) に接続します。
- アプリが存在するリポジトリとブランチを選択します。
- ビルドするプロジェクトの
package.json
を選択します。 - 最初のビルドを設定します。
Note
アプリを実際のデバイスで実行するには、ビルドに有効な証明書で署名されたコードが必要です。
1. リポジトリのリンク
リポジトリ サービス アカウントにまだ接続していない場合は、まずこれを行う必要があります。 アカウントが接続されたら、React Native プロジェクトが配置されているリポジトリを選択します。 リポジトリのビルドを設定するには、管理者とプルのアクセス許可が必要です。
2. ブランチの選択
リポジトリを選択したら、ビルドするブランチを選択します。 既定では、App Center にはすべてのアクティブなブランチが一覧表示されます。
3. 最初のビルドを設定する
最初のビルドの前に、React Native プロジェクトを構成する必要があります。
3.1. プロジェクト
プロジェクトの package.json
を選択します。 App Center は、依存関係、ビルド ツールのバージョン、ビルドの種類、製品の種類など、関連付けられている build.gradle (アプリ レベル) ファイルから自動的に情報を抽出します。
Note
最適なパフォーマンスを得るために、分析は現在、リポジトリのルートを含む 4 つのディレクトリ レベルに制限されています。
3.2. ビルドバリアント
使用可能なビルド バリアントは、プロジェクトの build.gradle (アプリ レベル) ファイルで指定されたビルドの種類と製品フレーバーから設定されます。 ビルドするビルドバリアントを選択します。
Note
App Center Build では、ビルドの種類 (デバッグ、リリース、またはカスタム定義) とオプションの Product Flavor の組み合わせとしてビルド バリアントを検索できます。 現時点では、複数の製品フレーバーの組み合わせの検出はサポートされていません。
3.3. Node.js バージョン
ビルドに使用するNode.jsバージョンを選択する バージョンの選択方法の詳細Node.js参照してください
3.4. トリガーをビルドする
既定では、開発者が構成済みのブランチにプッシュするたびに、新しいビルドがトリガーされます。 これは"継続的インテグレーション" と呼ばれます。 新しいビルドを手動でトリガーする場合は、構成ウィンドウでこの設定を変更できます。
3.5. Android アプリ バンドルのビルド (.aab)
Android アプリ バンドルは、Play ストアにアップロードできる配布形式です。 特定のデバイス用に最適化された API を生成するために使用されます。 Android アプリ バンドルの詳細については、 非公式の Android ドキュメントを参照してください。これは、通常のバンドルと共にバンドルを構築するかどうかを理解するのにも役立ちます。 .apk.
Android アプリ バンドルのオプションをオンにして、.apk
に加えて.aab
を生成します。 build.gradle
(アプリ レベル) ファイルに android.bundle
ブロックが含まれている場合、このオプションは自動的にオンに切り替わります。
3.6. バージョン番号の増分
有効にすると、アプリの AndroidManifest.xml のバージョン コードがビルドごとに自動的にインクリメントされます。 変更は実際のビルド中に行われ、リポジトリにコミットされません。
3.7. 実際のデバイスで成功したビルドを起動する
新しく生成された APK ファイルを使用して、アプリが実際のデバイスで起動するかどうかをテストします。 起動テストでは、合計ビルド時間にさらに約 10 分が追加されます。 詳細については、 起動テストの構成方法を参照してください。
3.8. コード署名
ビルドが成功すると、 .apk
ファイルと追加の .aab
ファイル (有効になっている場合) が生成されます。 Play ストアにビルドをリリースするには、キーストアに格納されている有効な証明書で署名する必要があります。 ブランチから生成されたビルドに署名するには、構成ウィンドウでコード署名を有効にし、リポジトリにキーストアをアップロードし、構成ウィンドウに関連する値を指定します。 Android コード署名の詳細については、アプリ センターの Android コード署名ドキュメント。 .aab
は、.apk
と同じ資格情報を使用して署名されます。
3.9. ビルドを配布する
ブランチからのビルドが成功するたびに、以前に作成した配布グループまたはストアの宛先に配布するように構成できます。 新しい配布グループを追加するか 配布サービス内から ストア接続を構成できます。 アプリにアクセスできるすべてのユーザーを含む、"コラボレーター" という既定の配布グループが常に存在します。
Note
Google Play ストアに配布する場合は、Android アプリ バンドル (.aab
) が優先され、有効になっている場合は配布されます。 App Center 配布グループと Intune ストアの宛先の場合、.aab
も生成された場合でも、通常の.apk
が使用されます。
4. ビルド結果
ビルド がトリガーされると、ビルドは次のいずれかの状態になります。
- queued - リソースが解放されるのを待機しているキュー内にビルドがあります
- building - ビルドは定義済みのタスクを実行しています
- succeeded - ビルドが完了し、成功しました
- failed - ビルドは完了しましたが失敗しました。ビルド ログをダウンロードして検査することで、問題のトラブルシューティングを行うことができます
- canceled - ユーザー アクションによってビルドが取り消されたか、タイムアウトしました
4.1. ビルド ログ
完了したビルド (成功または失敗) の場合は、ログをダウンロードして、ビルドの実行方法の詳細を確認します。 App Center には、次のファイルを含むアーカイブが用意されています。
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1>
|-- <build-step-2>
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
ビルド ステップ固有のログ (アーカイブの build/
ディレクトリにあります) は、トラブルシューティングを行い、ビルドが失敗した手順と理由を理解するのに役立ちます。
4.2. アプリ (.apk)
.apk
ファイルは、Android アプリを格納する Android アプリケーション パッケージ ファイルです。 ビルドが正しく署名されている場合は、アプリを実際のデバイスにインストールし、Play ストアに展開できます。 ビルドに署名されていない場合、アプリはエミュレーターで実行することも、他の目的で使用することもできます。
5. サポートされているバージョンと要件
Android アプリのビルドでサポートされる最小バージョンは 5.0 (API レベル 21) です。 Android アプリでは、実行に必要な最小 API レベルを設定できますが、少なくとも API レベル 21 をターゲットにする必要があります。
6. ビルドのヒント
6.1. Yarn
Yarn パッケージ マネージャーは、npm
のより高速で決定的な代替です。 package.json
の横にあるリポジトリにyarn.lock
ファイルが存在する場合、App Center では Yarn が使用され、ビルドの開始時にyarn install
されます。 それ以外の場合は、 npm install
。
6.2. カスタム ビルド スクリプト
App Center の既定のビルド コマンドを実行する前に、スクリプトを実行するためのオプションがいくつかあります。
プロジェクトの
package.json
ファイルに postinstall スクリプトを作成します。 このスクリプトは、依存関係がインストールされた後に自動的に実行されます。"scripts": { ... "postinstall" : "npx jetify" // other examples: "node ./postinstall.js" or "./postinstall.sh" },
App Center の custom ビルド スクリプト 機能を使用してシェル スクリプトを記述します。
#!/usr/bin/env bash # Example: Authenticate with private NPM registry echo "//registry.npmjs.org/:_authToken=$NPM_AUTH_TOKEN" > ~/.npmrc # Example: Add your signing key file (from base64 encoded environment variable) base64 -d <<< "$ANDROID_JSON_KEY_FILE" > android/keystores/json_key_file.json
6.3. 複数の API のビルド
Android 上の React Native の場合、ユニバーサル APK の生成は既定で無効になっています。 CPU アーキテクチャや画面構成ごとに異なる API など、複数の API をビルドするようにアプリ構成が設定されている場合は、ユニバーサル APK もビルドされていることを確認する必要があります。 App Center のビルド システムは、1 つのメイン APK ファイルで動作し、特定の CPU/ABI または画面密度に固有のすべての APK を無視します。
APK 分割の詳細とユニバーサル APK の構築方法については、対応する Android 開発者ガイドを参照してください。 そのため、 universalApk
が React Native ビルド構成の true
に設定されていることを確認します。