Android 用 Java アプリの構築

重要

Visual Studio App Center は、2025 年 3 月 31 日に廃止される予定です。 完全に廃止されるまで Visual Studio App Center を引き続き使用できますが、移行を検討できる推奨される代替手段がいくつかあります。

サポートタイムラインと代替方法の詳細をご確認ください

最初の Android アプリをビルドするには、次の手順に従います。

  1. リポジトリ サービス アカウント (GitHub、Bitbucket、VSTS、Azure DevOps) に接続します。
  2. アプリが存在するリポジトリとブランチを選択します。
  3. ビルドする Android プロジェクトを選択します。
  4. 最初のビルドを設定します。

Note

アプリを実際のデバイスで実行するには、ビルドに有効な証明書でコード署名する必要があります。

Note

App Center では、Android プロジェクトの gradle (および gradlew) ディレクトリ ファイルを検索して、プロジェクトを追跡します。 App Center Build ではファイルが見つからないので、これらのファイルをプロジェクト .gitignore に含めないでください。

警告

最近の JCenter のシャットダウンにより、一部のアプリでは、App Center を使用してビルドするときに Gradle タスクのエラーが発生する可能性があります。 Gradle が提供する移行ガイドをご覧ください。 回避策として、 jcenter() のすべてのインスタンスを build.gradle ファイルから削除し、 jcenter { url "http://jcenter.bintray.com/"}に置き換えることができます。 詳細については、JCenter のシャットダウン こちらを参照してください。

1. リポジトリのリンク

まだ接続していない場合は、リポジトリ サービス アカウントに接続する必要があります。 アカウントが接続されたら、Android プロジェクトが配置されているリポジトリを選択します。 リポジトリのビルドを設定するには、それに対する管理者とプルのアクセス許可が必要です。

2. ブランチの選択

リポジトリを選択したら、ビルドするブランチを選択します。 既定では、すべてのアクティブなブランチが一覧表示されます。

3. 最初のビルドを設定する

最初のビルドの前に、Android プロジェクトを構成する必要があります。

3.1. トリガーをビルドする

既定では、開発者が構成済みのブランチにプッシュするたびに、新しいビルドがトリガーされます。 これは"継続的インテグレーション" と呼ばれます。 新しいビルドを手動でトリガーする場合は、構成ウィンドウでこの設定を変更できます。

3.2. ビルドバリアント

使用可能なビルド バリアントは、build.gradle (アプリ レベル) ファイルで指定されたビルドの種類と製品フレーバーから設定されます。 ビルドするビルドバリアントを選択します。

Note

App Center Build では、ビルドの種類 (デバッグ、リリース、またはカスタム定義) と gradle で宣言された製品フレーバーの 1 つの組み合わせとしてビルド バリアントを検索できます。 現時点では、フレーバー ディメンション (複数の製品フレーバーの組み合わせ) の検出はサポートされていません。

3.3. Android アプリ バンドルのビルド (.aab)

Android アプリ バンドルは、Play ストアにアップロードされ、特定のデバイス用に最適化された API を生成するために使用される配布形式です。 Android アプリ バンドルの詳細については、 非公式の Android ドキュメントを参照してください。

Android アプリ バンドルのオプションを切り替えて、.apkに加えて.aabを生成します。 build.gradle (アプリ レベル) ファイルに android.bundle ブロックが含まれている場合、このオプションは既にオンになっています。

3.4. バージョン番号の増分

有効にすると、アプリのAndroidManifest.xmlのバージョン コードがビルドごとに自動的にインクリメントされます。 変更は実際のビルド中に行われ、リポジトリにコミットされません。

3.5. コード署名

ビルドが成功すると、 .apk ファイルと追加の .aab ファイル (有効になっている場合) が生成されます。 ビルドを Play ストアにリリースするには、キーストアに格納されている有効な証明書で署名する必要があります。 ブランチから生成されたビルドに署名するには、構成ウィンドウでコード署名を有効にし、リポジトリにキーストアをアップロードし、構成ウィンドウに関連する資格情報を指定します。 コード署名の詳細については、 App Center の Android コード署名に関するドキュメントを参照してください。 .aabは、.apkと同じ資格情報を使用して署名されます。

3.6. 実際のデバイスで成功したビルドを起動する

新しく生成された APK ファイルを使用して、アプリが実際のデバイスで起動するかどうかをテストします。 これにより、合計ビルド時間にさらに約 10 分が追加されます。 詳細については、 起動テストの構成方法を参照してください。

3.7. build.gradle (アプリ レベル) ファイルから構成する

ビルドに関する具体的な情報は、依存関係、ビルド ツールのバージョン、ビルドの種類、製品の種類など、Gradle ファイルから収集されます。

3.8. ビルドを配布する

ブランチからのビルドが成功するたびに、以前に作成した配布グループまたはストアの宛先に配布するように構成できます。 新しい配布グループを追加するか 配布サービス内から ストア接続を構成できます。 アプリにアクセスできるすべてのユーザーを含む、"コラボレーター" という既定の配布グループが常に存在します。

Note

Google Play ストアに配布する場合は、Android アプリ バンドル (.aab) が優先され、有効になっている場合は配布されます。 App Center 配布グループと Intune ストアの宛先の場合、.aabも生成された場合でも、通常の.apkが使用されます。

4. ビルド結果

ビルドがトリガーされると、次の状態になります。

  • queued - リソースが解放されるのを待機しているキューにビルドが存在します。
  • building - アプリは関連するタスクをビルドして実行しています。
  • 成功 - ビルドが正常に完了しました。
  • 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)

ビルド ステップ固有のログ (アーカイブのビルド/ディレクトリにあります) は、トラブルシューティングを行い、ビルドが失敗した手順と理由を理解するのに役立ちます。

4.2. アプリ パッケージ (APK)

APK は、Android アプリとアセットを含むパッケージです。 ビルドが正しく署名されていれば、APK を実際のデバイスにインストールし、Play ストアに展開できます。 ビルドに署名されていない場合、APK はエミュレーターで実行することも、他の目的で使用することもできます。

4.3. 複数の API のビルド

アプリ構成で複数の API をビルドする場合は、ユニバーサル APK もビルドする必要があります。 ビルド システムは 1 つのメイン APK ファイルで動作し、特定の CPU ABI または画面密度に固有のすべての APK を無視します。 APK 分割とユニバーサル APK の構築の詳細については、 ABI 分割ガイドを参照してください

4.4. deobfuscation-mapping ファイル (mapping.txt)

mapping.txt ファイルには、アプリの難読化スタック トレースを元のクラス名とメソッド名にマップする方法に関する情報が含まれています。

  • クラッシュ レポート モジュールを有効にしてアプリの App Center SDK を統合し、Proguard または R8 を使用してアプリ バイナリを縮小および難読化している場合、クラッシュ レポート サービスでは、ビルドに対してこの mapping.txt ファイル 読み取り可能な (難読化された) クラッシュ レポートを表示する必要があります
  • クラッシュ レポートの目的で別の SDK をアプリ (HockeyApp SDK など) に統合したことがある場合、対応するサービスでは、読み取り可能なクラッシュ レポートを表示するために mapping.txt ファイルが必要です。

5. サポートされているバージョンと要件

Android アプリのビルドでサポートされる最小バージョンは 7.0 (API レベル 24) です。 Android アプリでは、実行に必要な最小 API レベルを設定できますが、少なくとも API レベル 24 をターゲットにする必要があります。

アプリを正しく構成するには、Gradle と Android Gradle プラグインを使用してビルドする必要があります。 リポジトリには Gradle ラッパーを含める必要があります。

Cloud Build Machine の情報」も参照してください。