Version Name: 本質、パラメータの意味、設定方法

著者: IT Sectr 公開日: 2026-04-18 読了時間: 8 分

Version Nameは、ユーザーがストアやデバイスで目にするアプリケーションのバージョン文字列です。Build Numberとは異なり、このパラメータは意味を持ち、変更の重要性を反映します。Android Developers, 2025によると、Version Nameを正しく使用することで、ユーザーはアップデートの重要性を理解し、開発プロセスを信頼できるようになります。

重要ポイント

  • Version Nameは、App Store、Google Play、ユーザーのデバイスに表示されるユーザー向けバージョン文字列です。
  • Androidではbuild.gradleファイルのversionNameパラメータで設定し、iOSではInfo.plistのCFBundleShortVersionStringで設定します。
  • Build Numberとは異なり、Version Nameは内部ビルド識別には使用されず、重複することがあります。
  • セマンティック形式Major.Minor.Patchは、Version Nameを定義する最も一般的なスキームです。
  • CI/CDによるVersion Nameのインクリメントの自動化により、リリース時の人為的エラーのリスクを低減します。

Version Nameとは

Version Nameは、ユーザー向けにアプリケーションのリリースを識別するセマンティック文字列です。技術的なビルド識別子とは異なり、このパラメータは意味を持つ情報を伝えます。ユーザーは新しいアップデートが以前のものとどの程度異なるかを評価できます。

Version NameはGoogle PlayやApp Storeのアプリケーションカード、デバイスの「アプリ情報」セクション、システムアップデートダイアログに表示されます。開発者はリリース版をビルドする前に、プロジェクトの設定ファイルでこれを指定します。

Semantic Versioning 2.0(2023年)によると、Major.Minor.Patch形式はモバイルアプリケーションの78%で使用されています。メジャーバージョンは互換性のないAPI変更時に変更され、マイナーバージョンは機能追加時に、パッチはバグ修正時に変更されます。

Version Nameを使用してユーザーとコミュニケーションを取りましょう。ユーザーは提供されたアップデートがメジャー、マイナー、修正のいずれであるかを即座に理解できる必要があります。

セマンティックバージョンの構造

セマンティックバージョンは、 Major.Minor.Patchの3つの数値をドットで区切ったものです。各コンポーネントはアプリケーションの特定のレベルの変更を担当します。

メジャーバージョン(Major)は、後方互換性を壊す抜本的な変更が導入された場合に増加します。マイナーバージョン(Minor)は既存の機能を壊さずに新機能を追加します。パッチ(Patch)はバグ修正のみを含みます。

たとえば、バージョン3.2.1は、3番目のメジャーバージョン、2番目のマイナーアップデート、最初のパッチを意味します。このシステムは開発者とユーザーの両方にとって理解しやすいものです。

Version Nameの表示場所

Version Nameは、ユーザーにいくつかの主要な場所で表示されます。アプリストアでは、アプリケーションカードのヘッダーとアップデートリストに表示されます。デバイス上では、「アプリ情報」セクションのシステム設定に表示されます。

Google Playでは、Version Nameはアプリケーション名の下に表示され、ユーザーのアップデート判断に影響を与えます。App Storeでも、アプリケーションページを表示する際に同じ場所にバージョン文字列が表示されます。

Apptentive(2024年)の調査によると、67%のユーザーがアップデート前にアプリのバージョンを確認し、明確なセマンティクスによってインストール率が23%向上します。

AndroidでのVersion Name

Androidでは、Version Nameはbuild.gradleファイル(モジュールレベル)のversionNameパラメータで設定します。このパラメータは文字列であり、ドット、ハイフン、文字など任意の文字を含めることができます。

パラメータは必須のversionCodeパラメータとともにandroid.defaultConfigブロック内で宣言します。Androidは文字列の形式に制限を課しませんが、Google Playはセマンティック形式の使用を推奨しています。

Android Developers(2025年)によると、Google Playはストアのインターフェースでの表示にversionNameを使用しますが、プログラムによる内容の分析は行いません。アップデートのロジックに影響するのはversionCodeのみです。

Version NameはMajor.Minor.Patch形式で指定し、バージョン管理システムのタグと同期させて、リリースを明確に特定できるようにしてください。

GradleにおけるversionNameの特徴

Gradleでは、build.gradleで静的に、またはビルドスクリプトを通じて動的にversionNameを設定できます。動的生成は、自動ナイトリービルドやCI/CDパイプラインに便利です。

build.gradleでは、環境変数、コマンドラインパラメータ、シェルスクリプトの呼び出しを使用してversionNameを形成できます。典型的なアプローチは、version.propertiesファイルからバージョンを読み取ることです。

この柔軟性により、チームはバージョニングプロセスを自動化し、リリース準備中の人為的エラーを排除できます。

iOSでのVersion Name

iOSでは、Version NameはInfo.plistファイルのCFBundleShortVersionStringキーで設定します。これはApp Storeでアプリケーションを公開するための必須パラメータであり、文字列として厳密に型指定されます。

Androidとは異なり、App Store ConnectはVersion Nameの形式をチェックし、ドットで区切られた数値のパターンに一致することを要求します。文字列の最大長は18文字で、各バージョンコンポーネントは255を超えることはできません。

Apple Developer Documentation(2025年)によると、CFBundleShortVersionStringはApp Storeがストアインターフェースやユーザーのデバイス上のシステムダイアログでバージョンを表示するために使用されます。

App Store Connectにビルドをアップロードする際は、Version Nameがマーケティング資料に記載されているバージョンと一致していることを確認してください。これによりユーザーとのコミュニケーションが容易になります。

Xcodeとの統合

Xcodeは、ターゲット設定でVersion Nameを変更するためのグラフィカルインターフェースを提供します。「Marketing Version」フィールドは、IdentityセクションのGeneralタブにあります。変更は自動的にInfo.plistに保存されます。

自動化のためには、Xcode Build Phasesのビルドスクリプトやagvtool(Apple Generic Version Tool)ユーティリティを使用できます。agvtoolはコマンドラインからバージョンを管理し、CI/CDに統合できます。

このアプローチは、fastlaneやJenkinsを使用したアプリケーションの自動ビルドと配信に特に便利です。

Version NameとBuild Numberの違い

Version NameとBuild Numberは開発プロセスにおいて異なる役割を果たします。Version Nameはユーザー向けの文字列であり、Build Numberは各ビルドを一意に識別する内部的な数値識別子です。

Build Number(AndroidではversionCode、iOSではCFBundleVersion)は新しいビルドごとに増加させる必要があり、アプリストアはこれを使用してどのバージョンが新しいかを判断します。Version Nameは同じバージョンの複数のビルドで変更されないことがあります。

Google Play Policy(2025年)によると、同じversionCodeを持つ2つのアプリケーションは同じバージョンとみなされます。versionCodeはAPKごとに一意でなければなりません。Version Nameはこのチェックには関与しません。

ビルドごとに常にBuild Numberを増加させ、機能が変更された場合にのみVersion Nameを変更してください。これにより公開時の競合を防ぐことができます。

Version Nameの選び方

Version Nameの選択は、チームのバージョニング戦略に依存します。最も一般的なアプローチはセマンティックバージョニング(SemVer)ですが、カレンダーバージョニングやリリース日ベースのバージョニングなどの代替スキームも存在します。

Semantic Versioning 2.0では、オプションのプレリリースサフィックス付きのMajor.Minor.Patch形式を推奨しています。モバイルアプリケーションでは、認識を簡素化するためにパッチバージョンを省略したMajor.Minorスキームも一般的です。

カレンダーバージョニング(CalVer)はリリース日をバージョン番号として使用します(例:25.06(年と月))。このアプローチは、セマンティクスが意味を持たない頻繁なリリースを行うアプリケーションに便利です。

スキーム選択の推奨事項

セマンティックバージョニングは、後方互換性が重要な公開APIを持つアプリケーションに適しています。ユーザーと統合者はアップデートでどのような変更が予想されるかを理解できます。

カレンダーバージョニングは、変更の範囲よりもリリースの新しさが重要なアプリケーションに選ばれます。たとえば、ニュースアグリゲーターや天気アプリなどです。

ハイブリッドスキームは両方のアプローチを組み合わせたものです:Major.Minor.RC。ここでRCは特定のリリース候補のビルド番号です。このスキームはアクティブなベータテスト中に便利です。

Version Name設定例

以下のコード例は、AndroidとiOSでVersion Nameを設定する方法を示しています。AndroidではGradleを使用し、iOSではagvtoolを使用したXcode Build Settingsを使用します。

AndroidでのversionNameの設定

Androidでは、バージョンはapp/build.gradleファイルのdefaultConfigブロック内で設定します。versionNameパラメータは文字列値を受け入れます。

groovy
android {
    defaultConfig {
        versionCode 3
        versionName "2.1.0"
    }
}

versionNameは外部ファイルから読み取ったり、Gradle Scriptを使用して動的に生成したりすることもできます。

動的なversionNameの生成

動的バージョンはCI/CDシステムの環境変数から形成されます。これにより、各ビルドが正しいバージョン番号を受け取ることが保証されます。

groovy
def getVersionName = {
    return System.getenv("VERSION_NAME") ?:
            "2.1.0"
}

android {
    defaultConfig {
        versionName getVersionName()
    }
}

このアプローチによりバージョニングが自動化され、ビルドとリポジトリタグの不一致のリスクが排除されます。

iOSでのCFBundleShortVersionStringの設定

iOSでは、バージョンはXcodeを介して、またはagvtoolを使用してコマンドラインから設定できます。

bash
# マーケティングバージョンの設定
xcrun agvtool new-marketing-version 2.1.0

# 現在のバージョンの読み取り
xcrun agvtool what-marketing-version

agvtoolは自動的にInfo.plistを更新し、Xcodeプロジェクト内のすべてのターゲット間でバージョンを同期します。

よくある質問

Version NameとBuild Numberの違いは何ですか?

Version Nameはアプリストアに表示されるユーザー向けバージョン文字列です。Build Numberは各ビルドを一意に識別する内部的な数値ビルド識別子であり、ストアがバージョンの新しさを判断するために使用します。

Version Nameに文字を使用できますか?

Androidでは、versionNameに文字やハイフンを含む任意の文字を含めることができます。iOSでは、CFBundleShortVersionStringはドットで区切られた数値で構成する必要がありますが、プレリリースバージョンでは文字のサフィックスが許可されています。

Version Nameを自動的にインクリメントするには?

CI/CDツール — GitHub Actions、GitLab CI、Jenkinsを使用してください。ビルドスクリプトがファイルから現在のバージョンを読み取り、必要なコンポーネントをインクリメントし、リリースをビルドする前に新しい値を書き込みます。

Version Nameを変更しないとどうなりますか?

ストアはBuild Numberが増加していれば新しいビルドを受け入れます。ただし、ユーザーはバージョンの変更を確認できず、混乱を招く可能性があります。新機能のリリースごとにVersion Nameを変更することをお勧めします。

ユーザーにとって最適なVersion Nameの形式は?

Major.Minor.Patch形式は、ほとんどのプロジェクトにとって最適な選択です。ユーザーと開発者の両方にとって理解しやすく、SemVer標準に準拠し、すべてのアプリストアでサポートされています。

まとめ

  • Version NameはBuild Numberとは異なり、アプリストアやデバイスに表示されるユーザー向けバージョン文字列です。
  • Androidではbuild.gradleのversionNameで設定し、iOSではInfo.plistのCFBundleShortVersionStringで設定します。
  • セマンティック形式 Major.Minor.Patchはモバイルアプリのバージョニングの標準であり、ユーザーにも理解しやすいものです。
  • Version Nameはストアのアップデートロジックには関与しません — そのためにはBuild Number(versionCode / CFBundleVersion)が使用されます。
  • CI/CDによるバージョニングの自動化により、エラーのリスクが低減し、リリース準備が迅速化します。
  • iOSではバージョン管理にコマンドラインからagvtoolを使用し、AndroidではGradle Scriptを使用します。
  • スキームの選択はアプリケーションのタイプに依存します — APIを持つ製品にはセマンティック、頻繁なリリースにはカレンダーが適しています。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください