Skip to content

Most visited

Recently visited

navigation

アプリのバージョニング

クイックビュー

  • アプリのバージョニングは必須
  • アプリの Gradle ビルドファイルでバージョンを設定する
  • アプリのバージョニングによるユーザーのアップグレードへの影響
  • 開発プロセスの初期段階で将来のリリースも考慮したバージョニング戦略を決定する

このドキュメントの内容

  1. アプリのバージョン情報の設定
  2. API レベル要件の指定

関連ドキュメント

  1. リリースの準備
  2. Google Play のローンチ チェックリスト
  3. ビルド バリアントの設定

バージョニングは、アプリのアップグレードおよびメンテナンス戦略の重要な構成要素です。バージョニングが重要である理由は次のとおりです。

Android システムは、サードパーティ アプリのアップグレード、ダウングレード、互換性に制限を適用するためにアプリのバージョン情報を使用しません。代わりに、開発者がアプリ内で、またはユーザーにバージョン制限について通知することによってバージョン制限を適用します。ただし、Android システムは、ビルドファイルの minSdkVersion 設定で指定されているようにシステム バージョンの互換性を適用します。この設定によって、アプリは互換性がある最小のシステム API を指定できます。詳細については、最小のシステム API バージョンを指定するをご覧ください。

アプリのバージョン情報の設定

アプリのバージョン情報を定義するには、Gradle ビルドファイルのバージョン設定の値を指定します。これらの値は、ビルドプロセスでアプリのマニフェスト ファイルに統合されます。

注: アプリのバージョンをアプリの <manifest> 要素で直接定義すると、Gradle ビルドファイルのバージョンの値によってマニフェストの設定がオーバーライドされます。また、Gradle ビルドファイルでこの設定を定義しておくと、アプリのバージョンごとに異なる値を指定できます。マニフェストを統合する際の柔軟性を高めて上書きのリスクを回避するには、<manifest> 要素からこれらの属性を削除し、Gradle ビルドファイルでバージョン設定を定義する必要があります。

次の 2 つの設定を使用でき、必ず両方の値を定義する必要があります。

この設定のデフォルト値を定義するには、モジュールの build.gradle ファイルの android {} ブロック内にネストされた defaultConfig {} ブロックに設定を追加します。個々のビルドタイプやプロダクト フレーバーに応じて異なる値を定義して、アプリのバージョンごとに別の値でデフォルト値をオーバーライドできます。次の build.gradle ファイルは、defaultConfig {} ブロックおよび productFlavors {} ブロック内の versionCodeversionName の各設定を示しています。

android {
  ...
  defaultConfig {
    ...
    versionCode 2
    versionName "1.1"
  }
  productFlavors {
    demo {
      ...
      versionName "1.1-demo"
    }
    full {
      ...
    }
  }
}

この例では、defaultConfig {} ブロックの versionCode 値は、既存の APK にアプリの 2 回目のリリースが含まれていることを示しています。また versionName 文字列で、ユーザーにバージョン 1.1 と表示するように指定しています。この build.gradle ファイルでは、"demo" と "full" の 2 つのプロダクト フレーバーも定義しています。"demo" プロダクト フレーバー ブロックで versionName を "1.1-demo" と定義しているため、"demo" ビルドではデフォルト値ではなくこの versionName を使用します。"full" プロダクト フレーバー ブロックでは versionName を定義していないため、デフォルト値の "1.1" を使用します。

Android フレームワークでは、あなたのアプリのバージョン情報を他のアプリが照会できるようにする API が提供されています。バージョン情報を取得するには、PackageManagergetPackageInfo(java.lang.String, int) メソッドを使用します。

注: Instant Run を使用すると、Android Studio は自動的に versionCodeMAXINT に、versionName"INSTANTRUN" に設定します。

API レベル要件の指定

アプリで Android プラットフォームの特定の最小バージョンを必要とする場合は、アプリの build.gradle ファイルで API レベルの設定としてバージョン要件を指定できます。ビルドプロセスで、この設定はアプリのマニフェスト ファイルと統合されます。API レベル要件を指定すると、アプリは互換性のあるバージョンの Android プラットフォームを実行している端末にのみインストール可能になります。

注: API レベル要件をアプリのマニフェスト ファイルに直接指定すると、対応するビルドファイルの設定によってマニフェスト ファイル内の設定がオーバーライドされます。また、Gradle ビルドファイルでこの設定を定義しておくと、アプリのバージョンごとに異なる値を指定できます。マニフェストを統合する際の柔軟性を高めて上書きのリスクを回避するには、<uses-sdk> 要素からこれらの属性を削除し、Gradle ビルドファイルで API レベル設定を定義する必要があります。

次の 2 つの API レベル設定を使用できます。

build.gradle ファイルでデフォルトの API レベル要件を指定するには、android {} ブロック内にネストされた defaultConfig {} ブロックに、上記の設定を 1 つ以上追加します。ビルドタイプまたはプロダクト フレーバーに設定を追加することで、アプリの別のバージョンでデフォルト値をオーバーライドすることもできます。次の build.gradle ファイルは、defaultConfig {} ブロックでデフォルトの minSdkVersiontargetSdkVersion の設定を指定し、1 つのプロダクト フレーバーで minSdkVersion をオーバーライドしています。

android {
  ...
  defaultConfig {
    ...
    minSdkVersion 14
    targetSdkVersion 24
  }
  productFlavors {
    main {
      ...
    }
    afterLollipop {
      ...
      minSdkVersion 21
    }
  }
}

システムはアプリのインストールを準備する際にこれらの設定値をチェックして、システムのバージョンと比較します。minSdkVersion 値がシステム バージョンよりも大きい場合は、アプリをインストールできません。

これらの設定が指定されていない場合、システムはアプリがすべてのバージョンのプラットフォームと互換性があるものと判断します。

詳細については、<uses-sdk> マニフェスト要素のドキュメントと API レベルのドキュメントをご覧ください。Gradle ビルドの設定については、ビルド バリアントの構成をご覧ください。

This site uses cookies to store your preferences for site-specific language and display options.

Get the latest Android developer news and tips that will help you find success on Google Play.

* Required Fields

Hooray!

Follow Google Developers on WeChat

Browse this site in ?

You requested a page in , but your language preference for this site is .

Would you like to change your language preference and browse this site in ? If you want to change your language preference later, use the language menu at the bottom of each page.

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.

Take a short survey?
Help us improve the Android developer experience.
(Sep 2017 survey)